Bug 93320 - internal compiler error: in is_base_type, at dwarf2out.c:12987
Summary: internal compiler error: in is_base_type, at dwarf2out.c:12987
Status: NEW
Alias: None
Product: gcc
Classification: Unclassified
Component: c++ (show other bugs)
Version: 9.2.1
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords: accepts-invalid, ice-on-invalid-code
Depends on:
Blocks:
 
Reported: 2020-01-19 04:14 UTC by Mike Redd
Modified: 2022-01-20 04:10 UTC (History)
3 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2021-12-11 00:00:00


Attachments
preprocessed file that triggers the bug (186.23 KB, application/gzip)
2020-01-19 04:20 UTC, Mike Redd
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Mike Redd 2020-01-19 04:14:52 UTC
$ arm-none-eabi-g++ -v -save-temps -g3 -O0 -c -mthumb -mcpu=cortex-m4 -D__SAME54N19A__ -std=c++17 -fno-rtti -MMD -Wall -Wextra -ffunction-sections -fdata-sections  -exceptions -I config -I common -I bsp/interfaces -I bsp/drivers/same54 -I subrepos/CMSIS_5/CMSIS/Core/Include -I subrepos/FreeRTOS-Kernel/include -I subrepos/FreeRTOS-Kernel/portable/GCC/ARM_CM3 -I subrepos/embcpp/include -I subrepos/cppip/include -I subrepos/tcpip -I subrepos/thingi/include -I subrepos/crypto/include -D PLATFORM_thingios -D PLATFORM_freertos -D OPTION_exceptions -D OPTION_firmware_version="0.0.1" -D OPTION_embedded -c -o /home/mike/work/dio/build/same54n19a/obj/dio.elf/DioBoard.o dio/DioBoard.cpp
Using built-in specs.
COLLECT_GCC=arm-none-eabi-g++
Target: arm-none-eabi
Configured with: /mnt/workspace/workspace/GCC-9-pipeline/jenkins-GCC-9-pipeline-100_20191030_1572397542/src/gcc/configure --target=arm-none-eabi --prefix=/mnt/workspace/workspace/GCC-9-pipeline/jenkins-GCC-9-pipeline-100_20191030_1572397542/install-native --libexecdir=/mnt/workspace/workspace/GCC-9-pipeline/jenkins-GCC-9-pipeline-100_20191030_1572397542/install-native/lib --infodir=/mnt/workspace/workspace/GCC-9-pipeline/jenkins-GCC-9-pipeline-100_20191030_1572397542/install-native/share/doc/gcc-arm-none-eabi/info --mandir=/mnt/workspace/workspace/GCC-9-pipeline/jenkins-GCC-9-pipeline-100_20191030_1572397542/install-native/share/doc/gcc-arm-none-eabi/man --htmldir=/mnt/workspace/workspace/GCC-9-pipeline/jenkins-GCC-9-pipeline-100_20191030_1572397542/install-native/share/doc/gcc-arm-none-eabi/html --pdfdir=/mnt/workspace/workspace/GCC-9-pipeline/jenkins-GCC-9-pipeline-100_20191030_1572397542/install-native/share/doc/gcc-arm-none-eabi/pdf --enable-languages=c,c++ --enable-plugins --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-newlib --with-headers=yes --with-python-dir=share/gcc-arm-none-eabi --with-sysroot=/mnt/workspace/workspace/GCC-9-pipeline/jenkins-GCC-9-pipeline-100_20191030_1572397542/install-native/arm-none-eabi --build=x86_64-linux-gnu --host=x86_64-linux-gnu --with-gmp=/mnt/workspace/workspace/GCC-9-pipeline/jenkins-GCC-9-pipeline-100_20191030_1572397542/build-native/host-libs/usr --with-mpfr=/mnt/workspace/workspace/GCC-9-pipeline/jenkins-GCC-9-pipeline-100_20191030_1572397542/build-native/host-libs/usr --with-mpc=/mnt/workspace/workspace/GCC-9-pipeline/jenkins-GCC-9-pipeline-100_20191030_1572397542/build-native/host-libs/usr --with-isl=/mnt/workspace/workspace/GCC-9-pipeline/jenkins-GCC-9-pipeline-100_20191030_1572397542/build-native/host-libs/usr --with-libelf=/mnt/workspace/workspace/GCC-9-pipeline/jenkins-GCC-9-pipeline-100_20191030_1572397542/build-native/host-libs/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-pkgversion='GNU Tools for Arm Embedded Processors 9-2019-q4-major' --with-multilib-list=rmprofile
Thread model: single
gcc version 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] (GNU Tools for Arm Embedded Processors 9-2019-q4-major) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-g3' '-O0' '-c' '-mthumb' '-mcpu=cortex-m4' '-D' '__SAME54N19A__' '-std=c++17' '-fno-rtti' '-MMD' '-Wall' '-Wextra' '-ffunction-sections' '-fdata-sections' '-e' 'xceptions' '-I' 'config' '-I' 'common' '-I' 'bsp/interfaces' '-I' 'bsp/drivers/same54' '-I' 'subrepos/CMSIS_5/CMSIS/Core/Include' '-I' 'subrepos/FreeRTOS-Kernel/include' '-I' 'subrepos/FreeRTOS-Kernel/portable/GCC/ARM_CM3' '-I' 'subrepos/embcpp/include' '-I' 'subrepos/cppip/include' '-I' 'subrepos/tcpip' '-I' 'subrepos/thingi/include' '-I' 'subrepos/crypto/include' '-D' 'PLATFORM_thingios' '-D' 'PLATFORM_freertos' '-D' 'OPTION_exceptions' '-D' 'OPTION_firmware_version=0.0.1' '-D' 'OPTION_embedded' '-c' '-o' '/home/mike/work/dio/build/same54n19a/obj/dio.elf/DioBoard.o' '-mfloat-abi=soft' '-march=armv7e-m'
 /home/mike/toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/cc1plus -E -quiet -v -I config -I common -I bsp/interfaces -I bsp/drivers/same54 -I subrepos/CMSIS_5/CMSIS/Core/Include -I subrepos/FreeRTOS-Kernel/include -I subrepos/FreeRTOS-Kernel/portable/GCC/ARM_CM3 -I subrepos/embcpp/include -I subrepos/cppip/include -I subrepos/tcpip -I subrepos/thingi/include -I subrepos/crypto/include -imultilib thumb/v7e-m/nofp -iprefix /home/mike/toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/ -isysroot /home/mike/toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/../arm-none-eabi -MMD /home/mike/work/dio/build/same54n19a/obj/dio.elf/DioBoard.d -MQ /home/mike/work/dio/build/same54n19a/obj/dio.elf/DioBoard.o -dD -D__USES_INITFINI__ -D __SAME54N19A__ -D PLATFORM_thingios -D PLATFORM_freertos -D OPTION_exceptions -D OPTION_firmware_version=0.0.1 -D OPTION_embedded dio/DioBoard.cpp -mthumb -mcpu=cortex-m4 -mfloat-abi=soft -march=armv7e-m -std=c++17 -Wall -Wextra -fno-rtti -ffunction-sections -fdata-sections -g3 -fworking-directory -O0 -fpch-preprocess -o DioBoard.ii
ignoring duplicate directory "/home/mike/toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/../../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/include/c++/9.2.1"
ignoring duplicate directory "/home/mike/toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/../../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/include/c++/9.2.1/arm-none-eabi/thumb/v7e-m/nofp"
ignoring duplicate directory "/home/mike/toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/../../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/include/c++/9.2.1/backward"
ignoring duplicate directory "/home/mike/toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/../../lib/gcc/arm-none-eabi/9.2.1/include"
ignoring nonexistent directory "/home/mike/toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/../arm-none-eabi/usr/local/include"
ignoring duplicate directory "/home/mike/toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/../../lib/gcc/arm-none-eabi/9.2.1/include-fixed"
ignoring duplicate directory "/home/mike/toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/../../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/include"
ignoring nonexistent directory "/home/mike/toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/../arm-none-eabi/usr/include"
#include "..." search starts here:
#include <...> search starts here:
 config
 common
 bsp/interfaces
 bsp/drivers/same54
 subrepos/CMSIS_5/CMSIS/Core/Include
 subrepos/FreeRTOS-Kernel/include
 subrepos/FreeRTOS-Kernel/portable/GCC/ARM_CM3
 subrepos/embcpp/include
 subrepos/cppip/include
 subrepos/tcpip
 subrepos/thingi/include
 subrepos/crypto/include
 /home/mike/toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/include/c++/9.2.1
 /home/mike/toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/include/c++/9.2.1/arm-none-eabi/thumb/v7e-m/nofp
 /home/mike/toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/include/c++/9.2.1/backward
 /home/mike/toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/include
 /home/mike/toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/include-fixed
 /home/mike/toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-g3' '-O0' '-c' '-mthumb' '-mcpu=cortex-m4' '-D' '__SAME54N19A__' '-std=c++17' '-fno-rtti' '-MMD' '-Wall' '-Wextra' '-ffunction-sections' '-fdata-sections' '-e' 'xceptions' '-I' 'config' '-I' 'common' '-I' 'bsp/interfaces' '-I' 'bsp/drivers/same54' '-I' 'subrepos/CMSIS_5/CMSIS/Core/Include' '-I' 'subrepos/FreeRTOS-Kernel/include' '-I' 'subrepos/FreeRTOS-Kernel/portable/GCC/ARM_CM3' '-I' 'subrepos/embcpp/include' '-I' 'subrepos/cppip/include' '-I' 'subrepos/tcpip' '-I' 'subrepos/thingi/include' '-I' 'subrepos/crypto/include' '-D' 'PLATFORM_thingios' '-D' 'PLATFORM_freertos' '-D' 'OPTION_exceptions' '-D' 'OPTION_firmware_version=0.0.1' '-D' 'OPTION_embedded' '-c' '-o' '/home/mike/work/dio/build/same54n19a/obj/dio.elf/DioBoard.o' '-mfloat-abi=soft' '-march=armv7e-m'
 /home/mike/toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/cc1plus -fpreprocessed DioBoard.ii -quiet -dumpbase DioBoard.cpp -mthumb -mcpu=cortex-m4 -mfloat-abi=soft -march=armv7e-m -auxbase-strip /home/mike/work/dio/build/same54n19a/obj/dio.elf/DioBoard.o -g3 -O0 -Wall -Wextra -std=c++17 -version -fno-rtti -ffunction-sections -fdata-sections -o DioBoard.s
GNU C++17 (GNU Tools for Arm Embedded Processors 9-2019-q4-major) version 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] (arm-none-eabi)
	compiled by GNU C version 4.8.4, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version isl-0.18-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU C++17 (GNU Tools for Arm Embedded Processors 9-2019-q4-major) version 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] (arm-none-eabi)
	compiled by GNU C version 4.8.4, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version isl-0.18-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: f480ec8acc882d1f6d9f2efa85949468
In file included from subrepos/thingi/include/thingi/PropertyI.h:6,
                 from subrepos/thingi/include/thingi/Property.h:5,
                 from common/BoardInterface.h:6,
                 from dio/DioBoard.h:5,
                 from dio/DioBoard.cpp:2:
subrepos/thingi/include/thingi/Interface.h:241:19: internal compiler error: in is_base_type, at dwarf2out.c:12987
  241 |     virtual void* thisAsType(TypeId typeId) const override
      |                   ^~~~~~~~~~
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.

----
Please see attached for preprocessed source.
Comment 1 Mike Redd 2020-01-19 04:20:01 UTC
Created attachment 47675 [details]
preprocessed file that triggers the bug
Comment 2 Marek Polacek 2020-01-19 19:11:42 UTC
Confirmed with a cross:

subrepos/thingi/include/thingi/Interface.h:241:19: internal compiler error: in is_base_type, at dwarf2out.c:12990
0x6bf559 is_base_type
	/home/mpolacek/src/gcc/gcc/dwarf2out.c:12990
0x6bf559 is_base_type
	/home/mpolacek/src/gcc/gcc/dwarf2out.c:12960
0x6bf559 modified_type_die
	/home/mpolacek/src/gcc/gcc/dwarf2out.c:13179
0xc47410 add_type_attribute
	/home/mpolacek/src/gcc/gcc/dwarf2out.c:21580
0xc54543 gen_formal_parameter_die
	/home/mpolacek/src/gcc/gcc/dwarf2out.c:22261
0xc59be9 gen_formal_types_die
	/home/mpolacek/src/gcc/gcc/dwarf2out.c:22356
0xc40dba gen_subprogram_die
	/home/mpolacek/src/gcc/gcc/dwarf2out.c:23212
0xc5c52c gen_decl_die
	/home/mpolacek/src/gcc/gcc/dwarf2out.c:26320
0xc5b183 gen_member_die
	/home/mpolacek/src/gcc/gcc/dwarf2out.c:25165
0xc5b183 gen_struct_or_union_type_die
	/home/mpolacek/src/gcc/gcc/dwarf2out.c:25261
0xc5b183 gen_tagged_type_die
	/home/mpolacek/src/gcc/gcc/dwarf2out.c:25462
0xc43a0d gen_type_die_with_usage
	/home/mpolacek/src/gcc/gcc/dwarf2out.c:25657
0xc45036 gen_type_die
	/home/mpolacek/src/gcc/gcc/dwarf2out.c:25711
0xc5cd00 gen_decl_die
	/home/mpolacek/src/gcc/gcc/dwarf2out.c:26343
0xc5df96 dwarf2out_decl
	/home/mpolacek/src/gcc/gcc/dwarf2out.c:26884
0xc5e468 dwarf2out_type_decl
	/home/mpolacek/src/gcc/gcc/dwarf2out.c:26611
0xc5e468 dwarf2out_type_decl
	/home/mpolacek/src/gcc/gcc/dwarf2out.c:26606
0xf331c8 rest_of_type_compilation(tree_node*, int)
	/home/mpolacek/src/gcc/gcc/passes.c:339
0xa66a5d note_debug_info_needed(tree_node*)
	/home/mpolacek/src/gcc/gcc/cp/search.c:2263
0x969705 maybe_emit_vtables
	/home/mpolacek/src/gcc/gcc/cp/decl2.c:2313
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
Comment 3 Marek Polacek 2020-01-19 19:14:33 UTC
We crash in is_base_type because it gets 

(gdb) p type
$1 = <type_pack_expansion 0x7fffe5b77c78>
and that is not handled:
12990	      gcc_unreachable ();
Comment 4 Mike Redd 2020-01-19 19:33:12 UTC
FWIW: My code had a problem, but it would have been much easier to debug if the compile didn't crash. :-)

In other words, it is possibly not important to handle "type_pack_expansion" in a meaningful way here-- just report some kind of compile error instead of crashing?
Comment 5 Marek Polacek 2020-01-19 21:49:42 UTC
Seems like it started with g:3075affdbcb3232fe549fbeed87bd94114c14758
Comment 6 Przemyslaw Wirkus 2020-02-26 15:59:14 UTC
Hi,

I was able to reduce your testcase to this code:

template <typename> class a;
class {
  void b(a... c);
}

/Przemyslaw
Comment 7 vopl 2021-05-07 15:08:53 UTC
Very similar ICE here. Affected versions are 9 and 10 but not 11. The problem take place only with -g option supplied



$cat b11.cpp && echo EOFFFFFF
template <class=void>
struct Generic
{
    template <class=void> using Api = decltype([](){});
};

template <class T>
struct Def
{
    using Api = Generic<T>::template Api<>;
};

Def<int> d;
EOFFFFFF



$ g++ -v -g -std=c++20 b11.cpp
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/10.2.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /var/tmp/portage/sys-devel/gcc-10.2.0-r5/work/gcc-10.2.0/configure --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/10.2.0 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/10.2.0 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/10.2.0/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/10.2.0/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10 --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/10.2.0/python --enable-languages=c,c++,fortran --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --disable-nls --enable-checking=release --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 10.2.0-r5 p6' --disable-esp --enable-libstdcxx-time --with-build-config=bootstrap-lto --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-libgomp --disable-libssp --disable-libada --enable-systemtap --enable-vtable-verify --with-zstd --enable-lto --with-isl --disable-isl-version-check --enable-default-pie --disable-default-ssp
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.2.0 (Gentoo 10.2.0-r5 p6) 
COLLECT_GCC_OPTIONS='-v' '-g' '-std=c++2a' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
 /usr/libexec/gcc/x86_64-pc-linux-gnu/10.2.0/cc1plus -quiet -v -D_GNU_SOURCE b11.cpp -quiet -dumpbase b11.cpp -mtune=generic -march=x86-64 -auxbase b11 -g -std=c++2a -version -o /tmp/ccSzE9Pi.s
GNU C++17 (Gentoo 10.2.0-r5 p6) version 10.2.0 (x86_64-pc-linux-gnu)
	compiled by GNU C version 10.2.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.23-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10
 /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10/x86_64-pc-linux-gnu
 /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10/backward
 /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include
 /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include-fixed
 /usr/include
End of search list.
GNU C++17 (Gentoo 10.2.0-r5 p6) version 10.2.0 (x86_64-pc-linux-gnu)
	compiled by GNU C version 10.2.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.23-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 109a96b688365221cca69113b161e683
b11.cpp: In instantiation of 'struct Def<int>':
b11.cpp:15:10:   required from here
b11.cpp:9:8: internal compiler error: in is_base_type, at dwarf2out.c:12994
    9 | struct Def
      |        ^~~
0x5f1460 is_base_type
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/dwarf2out.c:12994
0x5f1460 is_base_type
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/dwarf2out.c:12964
0xe773ec modified_type_die
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/dwarf2out.c:13432
0xe76ce3 add_type_attribute
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/dwarf2out.c:21587
0xe71356 gen_typedef_die
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/dwarf2out.c:25406
0xe70e8a gen_decl_die
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/dwarf2out.c:26364
0xe8ce3c gen_member_die
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/dwarf2out.c:25183
0xe8ce3c gen_struct_or_union_type_die
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/dwarf2out.c:25279
0xe8ce3c gen_tagged_type_die
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/dwarf2out.c:25480
0xe7383d gen_type_die_with_usage
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/dwarf2out.c:25675
0xe731c6 gen_type_die
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/dwarf2out.c:25729
0xe70a87 gen_decl_die
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/dwarf2out.c:26361
0xe27a00 dwarf2out_decl
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/dwarf2out.c:26909
0xe89587 dwarf2out_type_decl
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/dwarf2out.c:26634
0xe89587 rest_of_type_compilation(tree_node*, int)
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/passes.c:339
0xf451c3 finish_struct_1(tree_node*)
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/cp/class.c:7506
0x1092c5e instantiate_class_template_1
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/cp/pt.c:12081
0xe2ef20 instantiate_class_template(tree_node*)
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/cp/pt.c:12120
0xe2ef20 complete_type(tree_node*)
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/cp/typeck.c:137
0xe2ef20 complete_type(tree_node*)
	/usr/src/debug/sys-devel/gcc-10.2.0-r5/gcc-10.2.0/gcc/cp/typeck.c:111
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://bugs.gentoo.org/> for instructions.
Comment 8 Luke Dalessandro 2021-09-30 19:33:21 UTC
I'm still seeing failures on this line in 12/trunk with the following invalid code with std=c++17, **but not with -std=c++20**. Don't think architecture is important.

```
struct A {
    A(decltype(auto)... xs) {}
};
```

https://godbolt.org/z/neKc1M6sd