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: unassig...@gcc.gnu.org ReportedBy: bur...@gcc.gnu.org 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