Commit f449022d by Jerry DeLisle

re PR fortran/35882 (Miscounted continuation lines when interspersed with data)

2008-04-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/35882
	* scanner.c (skip_fixed_comments): Update continue_line when comment is
	detected. (gfc_next_char_literal): Likewise.

	PR fortran/35882
	* gfortran.dg/continuation_5.f: Add some comment lines.
	* gfortran.dg/continuation_3.f90: Add some comment lines.

From-SVN: r134493
parent ef5f59f6
2008-04-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/35882
* scanner.c (skip_fixed_comments): Update continue_line when comment is
detected. (gfc_next_char_literal): Likewise.
2008-04-19 Paul Thomas <pault@gcc.gnu.org> 2008-04-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/35944 PR fortran/35944
......
...@@ -615,6 +615,10 @@ skip_fixed_comments (void) ...@@ -615,6 +615,10 @@ skip_fixed_comments (void)
!$|c$|*$ should be treated as 2 spaces if the characters !$|c$|*$ should be treated as 2 spaces if the characters
in columns 3 to 6 are valid fixed form label columns in columns 3 to 6 are valid fixed form label columns
characters. */ characters. */
if (gfc_current_locus.lb != NULL
&& continue_line < gfc_linebuf_linenum (gfc_current_locus.lb))
continue_line = gfc_linebuf_linenum (gfc_current_locus.lb);
if (gfc_option.flag_openmp) if (gfc_option.flag_openmp)
{ {
if (next_char () == '$') if (next_char () == '$')
...@@ -700,6 +704,9 @@ skip_fixed_comments (void) ...@@ -700,6 +704,9 @@ skip_fixed_comments (void)
if (col != 6 && c == '!') if (col != 6 && c == '!')
{ {
if (gfc_current_locus.lb != NULL
&& continue_line < gfc_linebuf_linenum (gfc_current_locus.lb))
continue_line = gfc_linebuf_linenum (gfc_current_locus.lb);
skip_comment_line (); skip_comment_line ();
continue; continue;
} }
...@@ -821,12 +828,14 @@ restart: ...@@ -821,12 +828,14 @@ restart:
"statement at %C", gfc_option.max_continue_free); "statement at %C", gfc_option.max_continue_free);
} }
} }
if (continue_line < gfc_linebuf_linenum (gfc_current_locus.lb))
continue_line = gfc_linebuf_linenum (gfc_current_locus.lb);
/* Now find where it continues. First eat any comment lines. */ /* Now find where it continues. First eat any comment lines. */
openmp_cond_flag = skip_free_comments (); openmp_cond_flag = skip_free_comments ();
if (gfc_current_locus.lb != NULL
&& continue_line < gfc_linebuf_linenum (gfc_current_locus.lb))
continue_line = gfc_linebuf_linenum (gfc_current_locus.lb);
if (prev_openmp_flag != openmp_flag) if (prev_openmp_flag != openmp_flag)
{ {
gfc_current_locus = old_loc; gfc_current_locus = old_loc;
...@@ -945,7 +954,8 @@ restart: ...@@ -945,7 +954,8 @@ restart:
} }
} }
if (continue_line < gfc_linebuf_linenum (gfc_current_locus.lb)) if (gfc_current_locus.lb != NULL
&& continue_line < gfc_linebuf_linenum (gfc_current_locus.lb))
continue_line = gfc_linebuf_linenum (gfc_current_locus.lb); continue_line = gfc_linebuf_linenum (gfc_current_locus.lb);
} }
......
2008-04-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/35882
* gfortran.dg/continuation_5.f: Add some comment lines.
* gfortran.dg/continuation_3.f90: Add some comment lines.
2008-04-20 Thomas Koenig <tkoenig@gcc.gnu.org> 2008-04-20 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/35960 PR libfortran/35960
...@@ -72,8 +72,12 @@ print *, & ...@@ -72,8 +72,12 @@ print *, &
"7" // & ! 27 "7" // & ! 27
"8" // & ! 28 "8" // & ! 28
"9" // & ! 29 "9" // & ! 29
!
!
"0" // & ! 30 "0" // & ! 30
"1" // & ! 31 "1" // & ! 31
!
!
"2" // & ! 32 "2" // & ! 32
"3" // & ! 33 "3" // & ! 33
"4" // & ! 34 "4" // & ! 34
......
...@@ -32,11 +32,19 @@ ...@@ -32,11 +32,19 @@
c "7" // ! 7 c "7" // ! 7
c "8" // ! 8 c "8" // ! 8
c "9" // ! 9 c "9" // ! 9
!
c
*
C
c "0" // ! 10 c "0" // ! 10
c "1" // ! 11 c "1" // ! 11
c "2" // ! 12 c "2" // ! 12
c "3" // ! 13 c "3" // ! 13
c "4" // ! 14 c "4" // ! 14
c
!
!
c "5" // ! 15 c "5" // ! 15
c "6" // ! 16 c "6" // ! 16
c "7" // ! 17 c "7" // ! 17
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment