diff mbox

[fortran] Bug 71686 - ICE on broken character continuation

Message ID 13f9013d-ca9e-249d-cae3-c345f9b14e41@charter.net
State New
Headers show

Commit Message

Jerry DeLisle June 29, 2016, 5:58 a.m. UTC
I plan to commit this patch as obvious and simple.

Regression tested on x86-64.  I will provide two test cases from the PR

Regards,

Jerry

2016-06-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/71686
	* scanner.c (gfc_next_char_literal): Only decrement nextc if it
	is not NULL.
diff mbox

Patch

diff --git a/gcc/fortran/scanner.c b/gcc/fortran/scanner.c
index 6a7a5b68..be9c5091 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 = ' ';