https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120287
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|15.2 |--- Keywords| |ice-checking, | |needs-bisection Known to fail| |10.3.0 Summary|[15/16 Regression] internal |internal compiler error: |compiler error: tree check: |tree check: expected class |expected class 'type', have |'type', have 'exceptional' |'exceptional' (error_mark) |(error_mark) in |in is_std_substitution, at |is_std_substitution, at |cp/mangle.cc:507 since |cp/mangle.cc:507 |r15-2798 | --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #1) > Confirmed. Slightly more reduced (removing some C++20 features even): > ``` > namespace std > { > template<int a> > auto m = []{}(); > } > auto t = std::m<1>; > ``` > > But this above one dates before GCC 15 at least back to GCC 10. Oh I see what is the difference between the testcases in comment #1 and comment #0, const. r15-2798 changed: `Linkage of const-qualified variable template` which exposed the latent bug by causing the mangling code to happen. It would be useful to get a new bisect based on the testcase in comment #1.