https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121865
Bug ID: 121865 Summary: ICE with modules and LTO (expected template_decl, have overload in maybe_template_info, at cp/mangle.cc:311) Product: gcc Version: 16.0 Status: UNCONFIRMED Keywords: ice-on-valid-code, lto Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: sjames at gcc dot gnu.org Blocks: 103524 Target Milestone: --- A user reported this in Gentoo w/ 15 but reproduces on trunk. Without checking, it segfaults. ``` $ ./test.sh + set -e + g++ -std=c++23 -flto=auto -fmodules-ts logger.ii -c + g++ -std=c++23 -flto=auto -fmodules-ts utils.ii -c + g++ -std=c++23 -flto=auto -fmodules-ts event.ii -c + g++ -std=c++23 -flto=auto -fmodules-ts semaphore.ii -c + g++ -std=c++23 -flto=auto -fmodules-ts engine.ii -c + g++ -std=c++23 -flto=auto -fmodules-ts timer.ii -c + g++ -std=c++23 -flto=auto -fmodules-ts evdev.ii -c + g++ -std=c++23 -flto=auto -fmodules-ts evinputdev.ii -c + g++ -std=c++23 -flto=auto -fmodules-ts kbdinputdev.ii -c + g++ -std=c++23 -flto=auto -fmodules-ts mouseinputdev.ii -c + g++ -std=c++23 -flto=auto -fmodules-ts socket.ii -c + g++ -std=c++23 -flto=auto -fmodules-ts udpsocket.ii -c + g++ -std=c++23 -flto=auto -fmodules-ts mxremote.ii -c + g++ -std=c++23 -flto=auto -fmodules-ts mxsrv.ii -c + g++ -std=c++23 -flto=auto -fmodules-ts router.cppm.ii -c during IPA pass: *free_lang_data In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/16/include/g++-v16/ios:47, from /usr/lib/gcc/x86_64-pc-linux-gnu/16/include/g++-v16/istream:42, from /usr/lib/gcc/x86_64-pc-linux-gnu/16/include/g++-v16/sstream:42, from /usr/lib/gcc/x86_64-pc-linux-gnu/16/include/g++-v16/chrono:61, from /home/sam/bugs/gentoo-962558/mxev/src/logger.cppm:5, of module logger, imported at /home/sam/bugs/gentoo-962558/mxev/src/router.cppm:17: /usr/lib/gcc/x86_64-pc-linux-gnu/16/include/g++-v16/streambuf:154:7: internal compiler error: tree check: expected template_decl, have overload in maybe_template_info, at cp/mangle.cc:311 154 | __copy_streambufs_eof<>(basic_streambuf*, basic_streambuf*, bool&); | ^~~~~~~~~~~~~~~~~~~~~~~ 0x55e5de3e5e1a internal_error(char const*, ...) /usr/src/debug/sys-devel/gcc-16.0.9999/gcc-16.0.9999/gcc/diagnostic-global-context.cc:786 0x55e5ddcc2fa0 tree_check_failed(tree_node const*, char const*, int, char const*, ...) /usr/src/debug/sys-devel/gcc-16.0.9999/gcc-16.0.9999/gcc/tree.cc:9184 0x55e5dc8d64a0 tree_check(tree_node*, char const*, int, char const*, tree_code) /usr/src/debug/sys-devel/gcc-16.0.9999/gcc-16.0.9999/gcc/tree.h:3733 0x55e5dc8d64a0 maybe_template_info /usr/src/debug/sys-devel/gcc-16.0.9999/gcc-16.0.9999/gcc/cp/mangle.cc:311 0x55e5de578c68 mangle_return_type_p(tree_node*) /usr/src/debug/sys-devel/gcc-16.0.9999/gcc-16.0.9999/gcc/cp/mangle.cc:853 0x55e5de5789a7 check_abi_tags(tree_node*) /usr/src/debug/sys-devel/gcc-16.0.9999/gcc-16.0.9999/gcc/cp/class.cc:1941 0x55e5de576130 write_mangled_name /usr/src/debug/sys-devel/gcc-16.0.9999/gcc-16.0.9999/gcc/cp/mangle.cc:801 0x55e5de576130 mangle_decl_string /usr/src/debug/sys-devel/gcc-16.0.9999/gcc-16.0.9999/gcc/cp/mangle.cc:4534 0x55e5de573e8a get_mangled_id /usr/src/debug/sys-devel/gcc-16.0.9999/gcc-16.0.9999/gcc/cp/mangle.cc:4550 0x55e5de573e8a mangle_decl(tree_node*) /usr/src/debug/sys-devel/gcc-16.0.9999/gcc-16.0.9999/gcc/cp/mangle.cc:4588 0x55e5de4df085 decl_assembler_name(tree_node*) /usr/src/debug/sys-devel/gcc-16.0.9999/gcc-16.0.9999/gcc/tree.cc:851 0x55e5dcac3963 assign_assembler_name_if_needed(tree_node*) /usr/src/debug/sys-devel/gcc-16.0.9999/gcc-16.0.9999/gcc/tree.cc:967 0x55e5dcac3963 assign_assembler_name_if_needed(tree_node*) /usr/src/debug/sys-devel/gcc-16.0.9999/gcc-16.0.9999/gcc/tree.cc:949 0x55e5dcac3963 free_lang_data_in_cgraph /usr/src/debug/sys-devel/gcc-16.0.9999/gcc-16.0.9999/gcc/ipa-free-lang-data.cc:1082 0x55e5dcac3963 free_lang_data /usr/src/debug/sys-devel/gcc-16.0.9999/gcc-16.0.9999/gcc/ipa-free-lang-data.cc:1127 0x55e5dcac3963 execute /usr/src/debug/sys-devel/gcc-16.0.9999/gcc-16.0.9999/gcc/ipa-free-lang-data.cc:1194 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://bugs.gentoo.org/> for instructions. ``` ``` Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/16/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-pc-linux-gnu Configured with: /var/tmp/portage/sys-devel/gcc-16.0.9999/work/gcc-16.0.9999/configure --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/16 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/16/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/16 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/16/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/16/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/16/include/g++-v16 --disable-silent-rules --disable-dependency-tracking --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/16/python --enable-libphobos --enable-objc-gc --enable-languages=c,c++,d,objc,obj-c++,fortran,ada,rust --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --disable-libunwind-exceptions --enable-checking=yes,extra,rtl,df --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 16.0.9999 p, commit 9321ede0c5e71b623e63e7c5595afd85c0ea6d75' --with-gcc-major-version-only --enable-libstdcxx-time --enable-lto --disable-libstdcxx-pch --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-multilib --with-multilib-list=m32,m64 --disable-fixed-point --enable-targets=all --enable-offload-defaulted --enable-offload-targets=nvptx-none --enable-libgomp --disable-libssp --enable-libada --enable-cet --disable-systemtap --enable-valgrind-annotations --disable-vtable-verify --disable-libvtv --with-zstd --without-isl --enable-default-pie --enable-host-pie --enable-host-bind-now --enable-default-ssp --disable-fixincludes --with-gxx-libcxx-include-dir=/usr/include/c++/v1 --with-build-config='bootstrap-lto bootstrap-cet' Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 16.0.0 20250907 (experimental) 93af5f69d15934edda4ff6a6eb63bde9ae7b8e45 (Gentoo 16.0.9999 p, commit 9321ede0c5e71b623e63e7c5595afd85c0ea6d75) ``` Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103524 [Bug 103524] [meta-bug] modules issue