http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54033
Bug #: 54033
Summary: gfortran: Passing file as include directory - add
diagnostic and ICE with -cpp
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Keywords: diagnostic, ice-on-invalid-code
Severity: normal
Priority: P3
Component: fortran
AssignedTo: [email protected]
ReportedBy: [email protected]
Based on the report by VladimĂr Fuka at
http://gcc.gnu.org/ml/fortran/2012-07/msg00089.html
Do:
touch file
gfortran -I file test.f90
Result:
Nothing.
Expected: As with gcc:
cc1: warning: foo: not a directory [enabled by default]
(That's in gcc/incpath.c's remove_duplicates - which is publical accessible via
register_include_chains -> merge_include_chains -> remove_duplicates)
If one uses the preprocessor (-cpp), one even gets an ICE:
Program received signal SIGABRT, Aborted.
#1 0x00002aaaabe0f1a8 in __GI_abort () at abort.c:91
#2 0x0000000000e56a27 in cpp_diagnostic_with_line (pfile=0x16a1450,
level=<optimized out>, reason=<optimized out>, src_loc=<optimized out>,
column=<optimized out>, msgid=<optimized out>, ap=0x7fffffffd948)
at libcpp/errors.c:145
#3 0x0000000000e56d29 in cpp_error_with_line (pfile=<optimized out>,
level=<optimized out>, src_loc=<optimized out>, column=<optimized out>,
msgid=<optimized out>) at libcpp/errors.c:164
#4 0x000000000085a07a in remove_duplicates (pfile=pfile@entry=0x16a1450,
head=0x16a10e0, system=0x16bd1a0, join=0x16bd1a0, verbose=verbose@entry=1)
at gcc/incpath.c:251
#5 0x000000000085a582 in merge_include_chains (verbose=1, pfile=0x16a1450,
sysroot=0x0) at gcc/incpath.c:341
#6 register_include_chains (pfile=<optimized out>, sysroot=0x0, iprefix=0x0,
imultilib=0x0, stdinc=1, cxx_stdinc=<optimized out>, verbose=1)
at gcc/incpath.c:466
#7 0x0000000000562c88 in gfc_cpp_register_include_paths ()
at gcc/fortran/cpp.c:694