http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60736

            Bug ID: 60736
           Summary: Crash in preprocessor including stdc-predef.h when it
                    does not exist on glibc-based systems
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Keywords: ice-on-invalid-code
          Severity: normal
          Priority: P3
         Component: preprocessor
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ian at airs dot com

The file stdc-predef.h is special on glibc-based systems, as GCC pretends that
it does a #include of that file first.  My system (Ubuntu Precise) does not
have stdc-predef.h.  That case is supposed to work.  However, if the program
attempts to #include <stdc-predef.h>, which should fail, the compiler crashes
rather than reporting an error.

In other words, on a system without <stdc-predef.h>, this crashes:

echo "#include <stdc-predef.h>" | gcc -x c -

<stdin>:1:0: internal compiler error: Segmentation fault
0x9ad9cf crash_signal
    ../../gccgo3/gcc/toplev.c:336
0xf35ba6 cpp_errno(cpp_reader*, int, char const*)
    ../../gccgo3/libcpp/errors.c:233
0xf3af13 _cpp_find_file
    ../../gccgo3/libcpp/files.c:571
0xf3b621 _cpp_stack_include
    ../../gccgo3/libcpp/files.c:993
0xf32b20 do_include_common
    ../../gccgo3/libcpp/directives.c:793
0xf336c0 _cpp_handle_directive
    ../../gccgo3/libcpp/directives.c:492
0xf40ad4 _cpp_lex_token
    ../../gccgo3/libcpp/lex.c:2067
0xf45887 cpp_get_token_1
    ../../gccgo3/libcpp/macro.c:2362
0x5ee37a c_lex_with_flags(tree_node**, unsigned int*, unsigned char*, int)
    ../../gccgo3/gcc/c-family/c-lex.c:302
0x584a93 c_lex_one_token
    ../../gccgo3/gcc/c/c-parser.c:228
0x5a389d c_parser_peek_token
    ../../gccgo3/gcc/c/c-parser.c:408
0x5a389d c_parse_file()
    ../../gccgo3/gcc/c/c-parser.c:13809
0x5f6894 c_common_parse_file()
    ../../gccgo3/gcc/c-family/c-opts.c:1056
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

Reply via email to