https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106631
--- Comment #3 from David Malcolm <dmalcolm at gcc dot gnu.org> --- Jonathan: it would need some special-casing in the parser, I think; FWIW the error is emitted here: (gdb) bt #0 error_at (richloc=0x4e6a9a0 <declarator_obstack>, gmsgid=0x4e6a9a0 <declarator_obstack> "") at ../../src/gcc/diagnostic-global-context.cc:433 #1 0x00000000013933de in c_parse_error (gmsgid=0x3e7744b "expected initializer", token_type=CPP_LESS, value=<tree 0x0>, token_flags=0 '\000', richloc=0x7fffffffd5b0) at ../../src/gcc/c-family/c-common.cc:6940 #2 0x0000000001107718 in cp_parser_error_1 (parser=0x7fffea678dc0, gmsgid=0x3e7744b "expected initializer", missing_token_desc=RT_NONE, matching_location=0) at ../../src/gcc/cp/parser.cc:3342 #3 0x00000000011077db in cp_parser_error (parser=0x7fffea678dc0, gmsgid=0x3e7744b "expected initializer") at ../../src/gcc/cp/parser.cc:3370 #4 0x0000000001139818 in cp_parser_init_declarator (parser=0x7fffea678dc0, flags=32, decl_specifiers=0x7fffffffd8b0, checks=0x0, function_definition_allowed_p=true, member_p=false, declares_class_or_enum=0, function_definition_p=0x7fffffffd8af, maybe_range_for_decl=0x0, init_loc=0x0, auto_result=0x0) at ../../src/gcc/cp/parser.cc:23938 #5 0x000000000115001a in cp_parser_single_declaration (parser=0x7fffea678dc0, checks=0x0, member_p=false, explicit_specialization_p=true, friend_p=0x0) at ../../src/gcc/cp/parser.cc:33775 #6 0x0000000001131618 in cp_parser_explicit_specialization (parser=0x7fffea678dc0) at ../../src/gcc/cp/parser.cc:20378 #7 0x00000000011289cf in cp_parser_declaration (parser=0x7fffea678dc0, prefix_attrs=<tree 0x0>) at ../../src/gcc/cp/parser.cc:15946 #8 0x0000000001128e71 in cp_parser_toplevel_declaration (parser=0x7fffea678dc0) at ../../src/gcc/cp/parser.cc:16054 #9 0x000000000110cef4 in cp_parser_translation_unit (parser=0x7fffea678dc0) at ../../src/gcc/cp/parser.cc:5353 #10 0x0000000001193827 in c_parse_file () at ../../src/gcc/cp/parser.cc:53085 #11 0x00000000013e422c in c_common_parse_file () at ../../src/gcc/c-family/c-opts.cc:1390 #12 0x0000000001cbda92 in compile_file () at ../../src/gcc/toplev.cc:452 #13 0x0000000001cc1b8b in do_compile () at ../../src/gcc/toplev.cc:2208 #14 0x0000000001cc2087 in toplev::main (this=0x7fffffffdd1a, argc=21, argv=0x7fffffffde28) at ../../src/gcc/toplev.cc:2368 #15 0x0000000003c9fd68 in main (argc=21, argv=0x7fffffffde28) at ../../src/gcc/main.cc:39