https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106334
Sergei Trofimovich <slyfox at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |NEW Resolution|FIXED |--- --- Comment #5 from Sergei Trofimovich <slyfox at gcc dot gnu.org> --- I'll reopen this bug. I still see the crash in original example. I can make #comment1 example crash by using `-flto-partition=none` in the link phase: $ ./result/bin/g++ -O1 -flto -fPIC -g -I. -o eval-cache.o -c eval-cache.cc && ./result/bin/g++ -O1 -flto -fPIC -g -I. -o eval.o -c eval.cc && ./result/bin/g++ -O1 -flto -fPIC -g -I. -o libnixexpr.so -shared eval-cache.o eval.o -flto-partition=none lto1: internal compiler error: in dwarf2out_register_external_die, at dwarf2out.cc:6076 0x1dc6714 diagnostic_impl(rich_location*, diagnostic_metadata const*, int, char const*, __va_list_tag (*) [1], diagnostic_t) ???:0 0x1dc7366 internal_error(char const*, ...) ???:0 0x8b7012 fancy_abort(char const*, int, char const*) ???:0 0xa07036 dwarf2out_register_external_die(tree_node*, char const*, unsigned long) ???:0 0x904efd lto_read_decls(lto_file_decl_data*, void const*, vec<ld_plugin_symbol_resolution, va_heap, vl_ptr>) ???:0 0x905c6a read_cgraph_and_symbols(unsigned int, char const**) ???:0 0x8edc52 lto_main() ???:0 The compiler should already cpntain the fix: $ ./result/bin/g++ -v | unnix Using built-in specs. COLLECT_GCC=/nix/store/w9kh67lghm1mq5gbcgg06d00d982cyj2-gcc-13.0.0/bin/g++ COLLECT_LTO_WRAPPER=/nix/store/w9kh67lghm1mq5gbcgg06d00d982cyj2-gcc-13.0.0/libexec/gcc/x86_64-unknown-linux-gnu/13.0.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: Thread model: posix Supported LTO compression algorithms: zlib gcc version 13.0.0 20220724 (experimental) (GCC)