aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2016-06-29 18:48:37 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2016-06-29 18:48:37 +0000
commitb5f58440d2eee04513ef790514354825e5cf41b5 (patch)
tree4494d90d42c5af06784bff73048288c73b8aec5b /gcc
parentee446d9fbb8226a98a939f070186e4ac3e5e333f (diff)
downloadgcc-b5f58440d2eee04513ef790514354825e5cf41b5.zip
gcc-b5f58440d2eee04513ef790514354825e5cf41b5.tar.gz
gcc-b5f58440d2eee04513ef790514354825e5cf41b5.tar.bz2
re PR fortran/71686 (ICE on broken character continuation)
2016-06-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/71686 * scanner.c (gfc_next_char_literal): Only decrement nextc if it is not NULL. From-SVN: r237860
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/scanner.c8
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 8c91f18..6ac8eaf 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2016-06-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/71686
+ * scanner.c (gfc_next_char_literal): Only decrement nextc if it
+ is not NULL.
+
2016-06-29 Cesar Philippidis <cesar@codesourcery.com>
* openmp.c (match_oacc_clause_gang): Rename to ...
diff --git a/gcc/fortran/scanner.c b/gcc/fortran/scanner.c
index 6a7a5b6..be9c509 100644
--- a/gcc/fortran/scanner.c
+++ b/gcc/fortran/scanner.c
@@ -1416,7 +1416,8 @@ restart:
{
if (in_string)
{
- gfc_current_locus.nextc--;
+ if (gfc_current_locus.nextc)
+ gfc_current_locus.nextc--;
if (warn_ampersand && in_string == INSTRING_WARN)
gfc_warning (OPT_Wampersand,
"Missing %<&%> in continued character "
@@ -1427,7 +1428,10 @@ restart:
/* Both !$omp and !$ -fopenmp continuation lines have & on the
continuation line only optionally. */
else if (openmp_flag || openacc_flag || openmp_cond_flag)
- gfc_current_locus.nextc--;
+ {
+ if (gfc_current_locus.nextc)
+ gfc_current_locus.nextc--;
+ }
else
{
c = ' ';