https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105289
Bug ID: 105289 Summary: ICE on partial specialization Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: michsteinb at gmail dot com Target Milestone: --- Created attachment 52818 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52818&action=edit Self-contained reproduction of the ICE, compile with -std=c++20 arm-none-eabi-g++ 11.2 crashes on attached self-contained code with following prompt on win64: ``` PS H:\projects\install\arm-embedded-gcc\11.2-2022.02\bin> .\arm-none-eabi-g++.exe -save-temps -std=c++20 -c repro.cxx repro.cxx:14:8: internal compiler error: Segmentation fault 14 | struct push_front_vlist<XList<T, Vs...>, Arg> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Please submit a full bug report, with preprocessed source if appropriate. See <https://bugs.linaro.org/> for instructions. ``` The 10.x release cycle compilers accepted this code, so does clang, so this is a regression introduced with 11.0. Further checks on godbolt showed the same behaviour on all 11.x compilers I tried. The problem stems from the primary template using a meta-function of its first parameter as type for its second. If I do not constrain the type of Arg, the crash disappears.