[Bug preprocessor/105608] New: [13 Regression] ICE: in linemap_add, at libcpp/line-map.cc:502 on ovito-3.7.1

slyfox at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sun May 15 08:08:00 GMT 2022


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105608

            Bug ID: 105608
           Summary: [13 Regression] ICE: in linemap_add, at
                    libcpp/line-map.cc:502 on ovito-3.7.1
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: preprocessor
          Assignee: unassigned at gcc dot gnu.org
          Reporter: slyfox at gcc dot gnu.org
  Target Milestone: ---

ICE initially observed on ovito-3.7.1 source code where
-DCOPYRIGHT="\"${long-string}\"" is used along with precompiled headers in
standard cmake setup.

Here is a 0-file reproducer:

# create empty files and dirs:
$ mkdir -p ph
$ touch ph/h.hxx.cxx
$ touch a.cpp

# trigger the bug:
$ /tmp/gb/gcc/xg++ -B/tmp/gb/gcc -Winvalid-pch -x c++-header -o ph/h.hxx.gch -c
ph/h.hxx.cxx
$ /tmp/gb/gcc/xg++ -B/tmp/gb/gcc
-DBUG=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-Winvalid-pch -include ph/h.hxx -o a.o -c a.cpp


ph/h.hxx.cxx:1:116: internal compiler error: in linemap_add, at
libcpp/line-map.cc:502
0x220adce linemap_add(line_maps*, lc_reason, unsigned int, char const*,
unsigned int)
        <<GCC>>/libcpp/line-map.cc:502
0x220b129 linemap_line_start(line_maps*, unsigned int, unsigned int)
        <<GCC>>/libcpp/line-map.cc:827
0x220b3f3 linemap_position_for_column(line_maps*, unsigned int)
        <<GCC>>/libcpp/line-map.cc:898
0x220802b _cpp_lex_direct
        <<GCC>>/libcpp/lex.cc:3596
0x22119dd lex_expansion_token
        <<GCC>>/libcpp/macro.cc:3552
0x22119dd create_iso_definition
        <<GCC>>/libcpp/macro.cc:3665
0x22119dd _cpp_create_definition
        <<GCC>>/libcpp/macro.cc:3829
0x2214574 cpp_read_state(cpp_reader*, char const*, _IO_FILE*, save_macro_data*)
        <<GCC>>/libcpp/pch.cc:841
0xad8b8d c_common_read_pch(cpp_reader*, char const*, int, char const*)
        <<GCC>>/gcc/c-family/c-pch.cc:347
0x2201213 is_known_idempotent_file
        <<GCC>>/libcpp/files.cc:817
0x2201213 _cpp_stack_file
        <<GCC>>/libcpp/files.cc:906
0x220182e _cpp_stack_include
        <<GCC>>/libcpp/files.cc:1113
0x2201e26 cpp_push_include(cpp_reader*, char const*)
        <<GCC>>/libcpp/files.cc:1621
0xad5d51 push_command_line_include
        <<GCC>>/gcc/c-family/c-opts.cc:1565
0xad5e79 cb_file_change
        <<GCC>>/gcc/c-family/c-opts.cc:1619
0x21f95cc _cpp_do_file_change
        <<GCC>>/libcpp/directives.cc:1181
0x21fa073 _cpp_pop_buffer
        <<GCC>>/libcpp/directives.cc:2773
0x22045b0 _cpp_get_fresh_line
        <<GCC>>/libcpp/lex.cc:3490
0x2207eb8 _cpp_lex_direct
        <<GCC>>/libcpp/lex.cc:3552
0x2209867 _cpp_lex_token
        <<GCC>>/libcpp/lex.cc:3398

gcc-12.1.0 does not seem to be affected. Only gcc-13 fails for me including
current master.

$ /tmp/gb/gcc/xg++ -B/tmp/gb/gcc -v
Reading specs from /tmp/gb/gcc/specs
COLLECT_GCC=/tmp/gb/gcc/xg++
COLLECT_LTO_WRAPPER=/tmp/gb/gcc/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: <<GCC>>/configure --disable-multilib --disable-bootstrap
--with-native-system-header-dir=/<<NIX>>/glibc-2.34-115-dev/include
--prefix=/tmp/gb/__td__ CFLAGS='-O1 -ggdb3' CXXFLAGS='-O1 -ggdb3' LDFLAGS='-O1
-ggdb3'
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 13.0.0 20220515 (experimental) (GCC)


More information about the Gcc-bugs mailing list