re PR fortran/22417 (gfortran preprocessing regression: nonsense warning about file left but not entered)

PR fortran/22417
	* scanner.c (preprocessor_line): Don't treat flag 3 as the start of a new
	file.  Fix file left but not entered warning.

	* gfortran.dg/g77/cpp5.F: New test.
	* gfortran.dg/g77/cpp5.h: New file.
	* gfortran.dg/g77/cpp5inc.h: New file.

From-SVN: r102010
This commit is contained in:
Jakub Jelinek 2005-07-14 09:15:00 +02:00 committed by Jakub Jelinek
parent 1c80856534
commit 94b00ee4e1
6 changed files with 25 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2005-07-14 Jakub Jelinek <jakub@redhat.com>
PR fortran/22417
* scanner.c (preprocessor_line): Don't treat flag 3 as the start of a new
file. Fix file left but not entered warning.
2005-07-14 Feng Wang <fengwang@nudt.edu.cn>
Steven G. Kargl <kargls@comcast.net>

View File

@ -899,7 +899,7 @@ preprocessor_line (char *c)
/* Interpret flags. */
if (flag[1] || flag[3]) /* Starting new file. */
if (flag[1]) /* Starting new file. */
{
f = get_file (filename, LC_RENAME);
f->up = current_file;
@ -908,15 +908,15 @@ preprocessor_line (char *c)
if (flag[2]) /* Ending current file. */
{
if (strcmp (current_file->filename, filename) != 0)
if (!current_file->up
|| strcmp (current_file->up->filename, filename) != 0)
{
gfc_warning_now ("%s:%d: file %s left but not entered",
current_file->filename, current_file->line,
filename);
return;
}
if (current_file->up)
current_file = current_file->up;
current_file = current_file->up;
}
/* The name of the file can be a temporary file produced by

View File

@ -1,3 +1,10 @@
2005-07-14 Jakub Jelinek <jakub@redhat.com>
PR fortran/22417
* gfortran.dg/g77/cpp5.F: New test.
* gfortran.dg/g77/cpp5.h: New file.
* gfortran.dg/g77/cpp5inc.h: New file.
2005-07-12 Paul Thomas <pault@gcc.gnu.org>
PR libfortran/16435

View File

@ -0,0 +1,4 @@
! { dg-do run }
#include "cpp5.h"
IF (FOO().NE.1) CALL ABORT ()
END

View File

@ -0,0 +1,3 @@
FUNCTION FOO()
#include "cpp5inc.h"
END FUNCTION

View File

@ -0,0 +1 @@
FOO = 1