Commit 0d6fc963 by Jerry DeLisle

re PR fortran/64506 (FORMAT Parse Error with Continuation Line)

2015-02-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/64506
	* scanner.c (gfc_next_char_literal): For free form source,
	check for '!' and if found, clear the comment and go back
	and get the next character. For fixed form source, skip the
	rest of the line.

From-SVN: r220687
parent 1f261e64
2015-02-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/64506
* scanner.c (gfc_next_char_literal): For free form source,
check for '!' and if found, clear the comment and go back
and get the next character. For fixed form source, skip the
rest of the line.
2015-02-12 Paul Thomas <pault@gcc.gnu.org> 2015-02-12 Paul Thomas <pault@gcc.gnu.org>
PR fortran/64932 PR fortran/64932
......
...@@ -1268,13 +1268,25 @@ restart: ...@@ -1268,13 +1268,25 @@ restart:
c = next_char (); c = next_char ();
/* Character constants to be continued cannot have commentary /* Character constants to be continued cannot have commentary
after the '&'. */ after the '&'. However, there are cases where we may think we
are still in a string and we are looking for a possible
doubled quote and we end up here. See PR64506. */
if (in_string && c != '\n') if (in_string)
{ {
gfc_current_locus = old_loc; gfc_current_locus = old_loc;
c = '&';
goto done; if (c == '!')
{
skip_comment_line ();
goto restart;
}
if (c != '\n')
{
c = '&';
goto done;
}
} }
if (c != '!' && c != '\n') if (c != '!' && c != '\n')
...@@ -1395,7 +1407,7 @@ restart: ...@@ -1395,7 +1407,7 @@ restart:
else /* Fixed form. */ else /* Fixed form. */
{ {
/* Fixed form continuation. */ /* Fixed form continuation. */
if (!in_string && c == '!') if (in_string != INSTRING_WARN && c == '!')
{ {
/* Skip comment at end of line. */ /* Skip comment at end of line. */
do do
......
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