https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108998
--- Comment #1 from waffl3x <waffl3x at protonmail dot com> --- I ran it on my local system, just to get some line numbers, and I accidentally ran it on an older version (12.1) and found that it has a similar result, I'm posting the output of -v and the error of both here. As a reminder, gcc 12.2 on godbolt does not ICE. [waffl3x@waffl3x-manjaro-desktop gcc]$ /opt/compiler/bin/g++ -v Using built-in specs. COLLECT_GCC=/opt/compiler/bin/g++ COLLECT_LTO_WRAPPER=/opt/compiler/libexec/gcc/x86_64-pc-linux-gnu/13.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-13-20230115/configure --enable-languages=c,c++,lto --enable-bootstrap --prefix=/opt/compiler --mandir=/usr/share/man --infodir=/usr/share/info --with-linker-hash-style=gnu --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-werror --enable-clocale=gnu --enable-libstdcxx-backtrace --enable-multilib --disable-libstdcxx-pch --with-build-config=bootstrap-lto Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 13.0.0 20230115 (experimental) (GCC) [waffl3x@waffl3x-manjaro-desktop gcc]$ /opt/compiler/bin/g++ test.cpp test.cpp: In instantiation of ‘ice<int>(int)::<lambda()> [with int I = 0]’: test.cpp:11:34: required from ‘void ice(T) [with T = int]’ test.cpp:15:8: required from here test.cpp:7:10: internal compiler error: in tsubst, at cp/pt.cc:16025 7 | auto aa = a; | ^~ 0x635279 tsubst(tree_node*, tree_node*, int, tree_node*) ../../gcc-13-20230115/gcc/cp/pt.cc:16025 0x8278de tsubst_decl ../../gcc-13-20230115/gcc/cp/pt.cc:15194 0x8302c8 tsubst_copy ../../gcc-13-20230115/gcc/cp/pt.cc:17267 0x8200fc tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*) ../../gcc-13-20230115/gcc/cp/pt.cc:21530 0x8248c8 tsubst(tree_node*, tree_node*, int, tree_node*) ../../gcc-13-20230115/gcc/cp/pt.cc:16547 0x829de5 tsubst_template_args(tree_node*, tree_node*, int, tree_node*) ../../gcc-13-20230115/gcc/cp/pt.cc:13659 0x821322 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*) ../../gcc-13-20230115/gcc/cp/pt.cc:20299 0x80d340 tsubst_expr(tree_node*, tree_node*, int, tree_node*) ../../gcc-13-20230115/gcc/cp/pt.cc:19764 0x80e512 tsubst_expr(tree_node*, tree_node*, int, tree_node*) ../../gcc-13-20230115/gcc/cp/pt.cc:18711 0x80e512 tsubst_expr(tree_node*, tree_node*, int, tree_node*) ../../gcc-13-20230115/gcc/cp/pt.cc:19041 0x80eb23 tsubst_expr(tree_node*, tree_node*, int, tree_node*) ../../gcc-13-20230115/gcc/cp/pt.cc:18711 0x80eb23 tsubst_expr(tree_node*, tree_node*, int, tree_node*) ../../gcc-13-20230115/gcc/cp/pt.cc:19105 0x80eb23 tsubst_expr(tree_node*, tree_node*, int, tree_node*) ../../gcc-13-20230115/gcc/cp/pt.cc:18711 0x80eb23 tsubst_expr(tree_node*, tree_node*, int, tree_node*) ../../gcc-13-20230115/gcc/cp/pt.cc:19105 0x80d0d9 tsubst_expr(tree_node*, tree_node*, int, tree_node*) ../../gcc-13-20230115/gcc/cp/pt.cc:26702 0x80d0d9 instantiate_body ../../gcc-13-20230115/gcc/cp/pt.cc:26702 0x81219d instantiate_decl(tree_node*, bool, bool) ../../gcc-13-20230115/gcc/cp/pt.cc:26992 0x6ffcb3 maybe_instantiate_decl(tree_node*) ../../gcc-13-20230115/gcc/cp/decl2.cc:5448 0x6ffcb3 maybe_instantiate_decl(tree_node*) ../../gcc-13-20230115/gcc/cp/decl2.cc:5435 0x718092 mark_used(tree_node*, int) ../../gcc-13-20230115/gcc/cp/decl2.cc:5747 [waffl3x@waffl3x-manjaro-desktop gcc]$ g++ -v Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.1/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: /build/gcc/src/gcc/configure --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 12.2.1 20230111 (GCC) [waffl3x@waffl3x-manjaro-desktop gcc]$ g++ test.cpp test.cpp: In instantiation of ‘ice<int>(int)::<lambda()> [with int I = 0]’: test.cpp:11:34: required from ‘void ice(T) [with T = int]’ test.cpp:15:8: required from here test.cpp:7:10: internal compiler error: in tsubst, at cp/pt.cc:15869 7 | auto aa = a; | ^~ 0x19e2ee8 internal_error(char const*, ...) ???:0 0x65443c fancy_abort(char const*, int, char const*) ???:0 0x7e0672 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ???:0 0x7e4429 tsubst(tree_node*, tree_node*, int, tree_node*) ???:0 0x7ed512 tsubst_template_args(tree_node*, tree_node*, int, tree_node*) ???:0 0x7e1ab6 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ???:0 0x7db493 instantiate_decl(tree_node*, bool, bool) ???:0 0x6eddcb mark_used(tree_node*, int) ???:0 0x67f26f build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, tree_node**, int) ???:0 0x7e37bd tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ???:0 0x7db493 instantiate_decl(tree_node*, bool, bool) ???:0 0x7f9a73 instantiate_pending_templates(int) ???:0 0x6fe618 c_parse_final_cleanups() ???:0