[Bug preprocessor/61474] ICE (segfault) in preprocessor
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61474 Lewis Hyatt changed: What|Removed |Added CC||lhyatt at gcc dot gnu.org Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED Target Milestone|--- |14.0 --- Comment #4 from Lewis Hyatt --- Thanks for the testcase, this is fixed for GCC 14.
[Bug preprocessor/61474] ICE (segfault) in preprocessor
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61474 --- Comment #3 from CVS Commits --- The master branch has been updated by Lewis Hyatt : https://gcc.gnu.org/g:601dbf2a799f691688dfe78250b5bea2717b5b5e commit r14-4185-g601dbf2a799f691688dfe78250b5bea2717b5b5e Author: Lewis Hyatt Date: Fri Sep 15 13:31:51 2023 -0400 libcpp: Fix ICE on #include after a line marker directive [PR61474] As noted in the PR, GCC will segfault if a file name is first seen in a linemarker directive, and then later seen in a normal #include. This is because the fake include process adds the file to the cache with a null PATH member. The normal #include finds this file in the cache and then attempts to use the null PATH. Resolve by adding the file to the cache with a unique starting directory, so that the fake entry will only be found by a subsequent fake include, not by a real one. libcpp/ChangeLog: PR preprocessor/61474 * files.cc (_cpp_find_file): Set DONT_READ to TRUE for fake include files. (_cpp_fake_include): Pass a unique cpp_dir* address so the fake file will not be found when looked up for real. gcc/testsuite/ChangeLog: PR preprocessor/61474 * c-c++-common/cpp/pr61474-2.h: New test. * c-c++-common/cpp/pr61474.c: New test. * c-c++-common/cpp/pr61474.h: New test.
[Bug preprocessor/61474] ICE (segfault) in preprocessor
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61474 Matthias Klose changed: What|Removed |Added CC||doko at debian dot org --- Comment #2 from Matthias Klose --- seen with trunk 20210306 $ gcc-11 -E a.c # 0 "a.c" # 0 "" # 0 "" # 1 "/usr/include/stdc-predef.h" 1 3 4 # 0 "" 2 # 1 "a.c" # 1 "b.h" 1 # 1 "c.h" 1 # 1 "b.h" 2 In file included from a.c:1: b.h:1: internal compiler error: Segmentation fault 1 | # 1 "c.h" 1 | 0xd041a0 crash_signal ../../src/gcc/toplev.c:327 0x11e616c open_file ../libcpp/../../src/libcpp/files.c:225 0x165a9ba read_file ../libcpp/../../src/libcpp/files.c:770 0x11e62dc _cpp_stack_file ../libcpp/../../src/libcpp/files.c:942 0x1684cd2 do_include_common ../libcpp/../../src/libcpp/directives.c:853 0x120a24f _cpp_handle_directive ../libcpp/../../src/libcpp/directives.c:541 0x1204fa4 _cpp_lex_token ../libcpp/../../src/libcpp/lex.c:2809 0x120927f cpp_get_token_1 ../libcpp/../../src/libcpp/macro.c:2839 0x16841c3 cpp_get_token_with_location(cpp_reader*, unsigned int*) ../libcpp/../../src/libcpp/macro.c:3108 0x16841c3 scan_translation_unit ../../src/gcc/c-family/c-ppoutput.c:320 0x16841c3 preprocess_file(cpp_reader*) ../../src/gcc/c-family/c-ppoutput.c:102 0x167e491 c_common_init() ../../src/gcc/c-family/c-opts.c:1195 0x163fb1b lang_dependent_init ../../src/gcc/toplev.c:1889 0x163fb1b do_compile ../../src/gcc/toplev.c:2186 Please submit a full bug report, with preprocessed source if appropriate.
[Bug preprocessor/61474] ICE (segfault) in preprocessor
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61474 --- Comment #1 from Richard Biener rguenth at gcc dot gnu.org --- I think we have a dup of this somewhere