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

Reply via email to