[Bug preprocessor/61474] ICE (segfault) in preprocessor

2023-09-20 Thread lhyatt at gcc dot gnu.org via Gcc-bugs
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

2023-09-20 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
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

2021-03-09 Thread doko at debian dot org via Gcc-bugs
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

2014-06-12 Thread rguenth at gcc dot gnu.org
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