[Bug c++/105921] internal compiler error: in cp_parser_template_id, at cp/parser.cc:18362
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jun 21 02:55:47 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105921
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Known to fail| |11.1.0, 6.1.0, 9.1.0
Keywords|ice-on-valid-code |
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Reduced testcase:
template <int T>
auto a = (struct A {}){};
int main () {
a<4>;
}
So GCC declares this as a compound literal where the new type is defined in the
(). It turns out for template variables, GCC is not ready for this.
Note clang rejects this code in both the non-template case and the template
case where defining a new struct is not allowed.
I don't know if we should restrict defining the new struct here or not.
This is not a regression either.
More information about the Gcc-bugs
mailing list