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

            Bug ID: 123629
           Summary: [16 regression] ICE when building clang-21.1.8
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: ipa
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ted.d.rodgers at gmail dot com
  Target Milestone: ---

Created attachment 63359
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=63359&action=edit
State.cpp.ii gzipped

ipa cp results in ICE with clang-21.1.8

This is with 2 patches applied that fixed the ICE with llvm from bug 123587:

https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=946580776e85db57b914c0a883f455caaa59b92d

https://raw.githubusercontent.com/gentoo/gcc-patches/refs/heads/master/16.0.0/gentoo/87_all_PR123619-ipa-cp.patch


FAILED: [code=1] bin/c-index-test 
: && /usr/bin/x86_64-pc-linux-gnu-g++ -march=native -O3 -flto=56
-mprefer-vector-width=512 -fno-vect-cost-model -pipe -Werror=lto-type-mismatch
-Werror=odr -Werror=strict-aliasing -ggdb3 -fPIC -fno-semantic-interposition
-fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra
-Wno-unused-parameter -Wwrite-strings -Wcast-qual
-Wno-missing-field-initializers -Wimplicit-fallthrough -Wno-nonnull
-Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move
-Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment
-Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color
-ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -pedantic
-Wno-long-long -Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs 
-Wl,-rpath-link,/var/tmp/portage/llvm-core/clang-21.1.8/work/x/y/clang-abi_x86_64.amd64/./lib64
 -Wl,--gc-sections 
-Wl,--dependency-file=tools/c-index-test/CMakeFiles/c-index-test.dir/link.d
tools/c-index-test/CMakeFiles/c-index-test.dir/c-index-test.c.o
tools/c-index-test/CMakeFiles/c-index-test.dir/core_main.cpp.o -o
bin/c-index-test -L/usr/lib/llvm/21/lib64
-Wl,-rpath,"\$ORIGIN/../lib64:/var/tmp/portage/llvm-core/clang-21.1.8/work/x/y/clang-abi_x86_64.amd64/lib64:/usr/lib/llvm/21/lib64:"
 lib64/libclang.so.21.1.8  lib64/libclangAST.a  lib64/libclangBasic.a 
lib64/libclangFrontend.a  lib64/libclangIndex.a  lib64/libclangSerialization.a 
/usr/lib64/libxml2.so  lib64/libclangFrontend.a  lib64/libclangDriver.a 
lib64/libclangParse.a  lib64/libclangSerialization.a  lib64/libclangSema.a 
lib64/libclangAPINotes.a  lib64/libclangEdit.a  lib64/libclangAnalysis.a 
lib64/libclangASTMatchers.a  lib64/libclangAST.a  lib64/libclangSupport.a 
lib64/libclangFormat.a  lib64/libclangToolingInclusions.a 
lib64/libclangToolingCore.a  lib64/libclangRewrite.a  lib64/libclangLex.a 
lib64/libclangBasic.a  /usr/lib/llvm/21/lib64/libLLVM.so.21.1  -lgcc_s_asneeded
 -lgcc_s_asneeded && :
during IPA pass: cp
lto1: internal compiler error: Segmentation fault
0x5569ecedd787 internal_error(char const*, ...)
       
/usr/src/debug/sys-devel/gcc-16.0.0_p20260111-r1/gcc-16-20260111/gcc/diagnostic-global-context.cc:787
0x5569eb04b56a crash_signal
       
/usr/src/debug/sys-devel/gcc-16.0.0_p20260111-r1/gcc-16-20260111/gcc/toplev.cc:325
0x7f57816453ff ???
       
/usr/src/debug/sys-libs/glibc-2.42-r3/glibc-2.42/signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
0x5569ecaf16c8 vec<ipa_polymorphic_call_context, va_heap,
vl_embed>::operator[](unsigned int)
       
/usr/src/debug/sys-devel/gcc-16.0.0_p20260111-r1/gcc-16-20260111/gcc/vec.h:911
0x5569ecaf16c8 vec<ipa_polymorphic_call_context, va_heap,
vl_ptr>::operator[](unsigned int)
       
/usr/src/debug/sys-devel/gcc-16.0.0_p20260111-r1/gcc-16-20260111/gcc/vec.h:1610
0x5569ecaf16c8 ipcp_val_replacement_ok_p(vec<tree_node*, va_heap, vl_ptr>&,
vec<ipa_polymorphic_call_context, va_heap, vl_ptr>&, vec<ipa_argagg_value,
va_gc, vl_embed>*, int, long, ipa_polymorphic_call_context)
       
/usr/src/debug/sys-devel/gcc-16.0.0_p20260111-r1/gcc-16-20260111/gcc/ipa-cp.cc:5896
0x5569ecaf16c8 bool
decide_about_value<ipa_polymorphic_call_context>(cgraph_node*, int, long,
ipcp_value<ipa_polymorphic_call_context>*, vec<cgraph_node*, va_heap, vl_ptr>*,
int) [clone .constprop.0]
       
/usr/src/debug/sys-devel/gcc-16.0.0_p20260111-r1/gcc-16-20260111/gcc/ipa-cp.cc:6039
0x5569ecadaf12 decide_whether_version_node
       
/usr/src/debug/sys-devel/gcc-16.0.0_p20260111-r1/gcc-16-20260111/gcc/ipa-cp.cc:6238
0x5569ecadc9c0 ipcp_decision_stage
       
/usr/src/debug/sys-devel/gcc-16.0.0_p20260111-r1/gcc-16-20260111/gcc/ipa-cp.cc:6550
0x5569ecadc9c0 ipcp_driver
       
/usr/src/debug/sys-devel/gcc-16.0.0_p20260111-r1/gcc-16-20260111/gcc/ipa-cp.cc:6746
0x5569ecadc9c0 execute
       
/usr/src/debug/sys-devel/gcc-16.0.0_p20260111-r1/gcc-16-20260111/gcc/ipa-cp.cc:6823



This failed part will produced the ice:

/usr/bin/x86_64-pc-linux-gnu-g++ -march=native -O3 -flto=56
-mprefer-vector-width=512 -fno-vect-cost-model -pipe -Werror=lto-type-mismatch
-Werror=odr -Werror=strict-aliasing -ggdb3 -fPIC -fno-semantic-interposition
-fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra
-Wno-unused-parameter -Wwrite-strings -Wcast-qual
-Wno-missing-field-initializers -Wimplicit-fallthrough -Wno-nonnull
-Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move
-Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment
-Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color
-ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -pedantic
-Wno-long-long -Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs
-Werror=lto-type-mismatch -Werror=odr -Werror=strict-aliasing 
-Wl,-rpath-link,/var/tmp/portage/llvm-core/clang-21.1.8/work/x/y/clang-abi_x86_64.amd64/./lib64
 -Wl,--gc-sections 
-Wl,--dependency-file=tools/c-index-test/CMakeFiles/c-index-test.dir/link.d
tools/c-index-test/CMakeFiles/c-index-test.dir/c-index-test.c.o
tools/c-index-test/CMakeFiles/c-index-test.dir/core_main.cpp.o -o
bin/c-index-test -L/usr/lib/llvm/21/lib64
-Wl,-rpath,"\$ORIGIN/../lib64:/var/tmp/portage/llvm-core/clang-21.1.8/work/x/y/clang-abi_x86_64.amd64/lib64:/usr/lib/llvm/21/lib64:"
 lib64/libclang.so.21.1.8 /usr/lib/llvm/21/lib64/libLLVM.so.21.1 
-lgcc_s_asneeded  -lgcc_s_asneeded /usr/lib64/libxml2.so lib64/libclangAST.a

Extracted lib64/libclangAST.a and used a sed loop through a reference file to
remove each .o file one by one. Once State.cpp.o was removed, compiler no
longer errored.

State.cpp.ii is attached

Reply via email to