From 94b00ee4e1126901db295a7223b3c6d7c5b1868d Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 14 Jul 2005 09:15:00 +0200 Subject: 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 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/scanner.c | 8 ++++---- 2 files changed, 10 insertions(+), 4 deletions(-) (limited to 'gcc/fortran') diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index a4897da..5f17e5e 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2005-07-14 Jakub Jelinek + + 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 Steven G. Kargl diff --git a/gcc/fortran/scanner.c b/gcc/fortran/scanner.c index fe28820..eee3a68 100644 --- a/gcc/fortran/scanner.c +++ b/gcc/fortran/scanner.c @@ -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 -- cgit v1.1