https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92091

            Bug ID: 92091
           Summary: Inconsistent diagnostics for INCLUDE vs. #include
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: anlauf at gcc dot gnu.org
  Target Milestone: ---

For files included via INCLUDE, the diagnostics printed may be incomplete
when the included file resides in a different directory.  There is no
problem when using #include.

Reproducer:

% cat bug.f90
module bug
  implicit none
  public
  include 'inc1.f90'
  include 'inc2.f90'
end module bug

# cat bug.F90
module bug
  implicit none
  public
#include "inc1.f90"
#include "inc2.f90"
end module bug

% cat otherdir/inc1.f90
  character*1 c

% cat inc2.f90 
  character*2 d


Using e.g. svn rev.276967, I get:

% gfc-10 -c bug.f90 -Iotherdir -std=f2008
inc1.f90:1:14:

Warning: Obsolescent feature: Old-style character length at (1)
inc2.f90:1:14:

    1 |   character*2 d
      |              1
Warning: Obsolescent feature: Old-style character length at (1)

% gfc-10 -c bug.F90 -Iotherdir -std=f2008
otherdir/inc1.f90:1:14:

    1 |   character*1 c
      |              1
Warning: Obsolescent feature: Old-style character length at (1)
inc2.f90:1:14:

    1 |   character*2 d
      |              1
Warning: Obsolescent feature: Old-style character length at (1)


Note that the diagnostics for inc1.f90 is incomplete for INCLUDE.
Also, the filename does not show the full path in that case.  Not
sure if this is relevant to the issue.

This affects all gcc versions down to at least 7.x, so no regression.

Reply via email to