https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105600
--- Comment #4 from Alex Coplan <acoplan at gcc dot gnu.org> --- Created attachment 52988 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52988&action=edit reduced testcase I managed to reproduce the environment and reduce a testcase (see the attached tarball): $ cat build.sh #!/bin/bash set -e CC=aarch64-linux-gnu-g++ $CC -fsanitize=undefined -flto -O2 -std=gnu++14 -o a.o -c a.cc $CC -fsanitize=undefined -O2 -std=gnu++14 -o b.o -c b.cc $CC b.o a.o $ ./build.sh a.cc: In instantiation of ‘nlohmann::basic_json< <template-parameter-1-1>, <template-parameter-1-2>, <template-parameter-1-3>, <template-parameter-1-4>, <template-parameter-1-5>, <template-parameter-1-6>, <template-parameter-1-7>, <template-parameter-1-8>, <template-parameter-1-9>, <template-parameter-1-10> >::reference nlohmann::basic_json< <template-parameter-1-1>, <template-parameter-1-2>, <template-parameter-1-3>, <template-parameter-1-4>, <template-parameter-1-5>, <template-parameter-1-6>, <template-parameter-1-7>, <template-parameter-1-8>, <template-parameter-1-9>, <template-parameter-1-10> >::operator[](T) [with T = const char*; ObjectType = std::map; <template-parameter-1-2> = std::vector; <template-parameter-1-3> = std::__cxx11::basic_string<char>; <template-parameter-1-4> = bool; <template-parameter-1-5> = long int; <template-parameter-1-6> = long unsigned int; <template-parameter-1-7> = double; <template-parameter-1-8> = std::allocator; JSONSerializer = nlohmann::adl_serializer; <template-parameter-1-10> = std::vector<unsigned char>; reference = nlohmann::basic_json<>]’: a.cc:87:65: required from here a.cc:83:3: warning: no return statement in function returning non-void [-Wreturn-type] 83 | } | ^ during IPA pass: icf lto1: internal compiler error: Segmentation fault 0xd4b25f crash_signal /home/alecop01/toolchain/src/gcc/gcc/toplev.cc:322 0x11508b9 varpool_node::get_constructor() /home/alecop01/toolchain/src/gcc/gcc/varpool.cc:300 0x1bd2db6 ipa_icf::sem_variable::equals(ipa_icf::sem_item*, hash_map<symtab_node*, ipa_icf::sem_item*, simple_hashmap_traits<default_hash_traits<symtab_node*>, ipa_icf::sem_item*> >&) /home/alecop01/toolchain/src/gcc/gcc/ipa-icf.cc:1697 0x1bd3e78 ipa_icf::sem_item_optimizer::subdivide_classes_by_equality(bool) /home/alecop01/toolchain/src/gcc/gcc/ipa-icf.cc:2731 0x1bdbce0 ipa_icf::sem_item_optimizer::execute() /home/alecop01/toolchain/src/gcc/gcc/ipa-icf.cc:2464 0x1bde1f2 ipa_icf_driver /home/alecop01/toolchain/src/gcc/gcc/ipa-icf.cc:3600 0x1bde1f2 ipa_icf::pass_ipa_icf::execute(function*) /home/alecop01/toolchain/src/gcc/gcc/ipa-icf.cc:3647 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. lto-wrapper: fatal error: aarch64-linux-gnu-g++ returned 1 exit status compilation terminated. /home/alecop01/toolchain/build-aarch64-linux-gnu/install/bin/../lib/gcc/aarch64-linux-gnu/13.0.0/../../../../aarch64-linux-gnu/bin/ld: error: lto-wrapper failed collect2: error: ld returned 1 exit status Confirmed on trunk.