https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115778
Bug ID: 115778 Summary: Internal compiler error: in keep_template_parm, at cp/pt.cc:10960 Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: s.murthy at outlook dot com Target Milestone: --- I stumbled on this ICE in GCC trunk currently deployed on Compiler Explorer. Probably not a concern because the issue is seen in trunk, but reporting it because the compiler output asks to, and I don't this issue in the bug database. --version outputs: "g++ (Compiler-Explorer-Build-gcc-751982484b50f3fcf54235683fb4c76dd6426d92-binutils-2.42) 15.0.0 20240703 (experimental)" The same code has no error in GCC 14.1. Repro (see: https://sigcpp.godbolt.org/z/PhnG9oK47) --------------------------------------------------- #include <concepts> #include <type_traits> template<bool B = false, std::unsigned_integral N = unsigned> class dv{}; //error goes away if you remove template param B template<std::unsigned_integral U = unsigned, template <bool, std::unsigned_integral> class V = dv > struct C { U u{}; C(std::signed_integral auto){} }; template <std::signed_integral SI> C(SI) -> C<std::make_unsigned_t<SI>>; //ICE here