Started between 20200503 and 20200510 : $ cat z1.cc template <typename> void bar () { [] <int> {}.operator () <> (); } void foo () { bar<int> (); } $ g++-12-20220410 -c z1.cc z1.cc: In instantiation of 'void bar() [with <template-parameter-1-1> = int]': z1.cc:7:12: required from here z1.cc:3:28: internal compiler error: in lookup_template_class_1, at cp/pt.cc:10111 3 | [] <int> {}.operator () <> (); | ~~~~~~~~~~~~~~~~~~~~~~~~~^ 0x990981 lookup_template_class_1 ../../gcc/cp/pt.cc:10111 0x990981 lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int, int) ../../gcc/cp/pt.cc:10350 0x990cb2 tsubst_aggr_type ../../gcc/cp/pt.cc:13738 0x97a962 tsubst(tree_node*, tree_node*, int, tree_node*) ../../gcc/cp/pt.cc:15649 0x9a717b tsubst_baselink ../../gcc/cp/pt.cc:16453 0x976d2b tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc/cp/pt.cc:21028 0x975385 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc/cp/pt.cc:20658 0x99b274 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/cp/pt.cc:19473 0x99918d tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/cp/pt.cc:18486 0x999b9f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/cp/pt.cc:18458 0x99b233 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/cp/pt.cc:18815 0x97f679 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/cp/pt.cc:18444 0x97f679 instantiate_body ../../gcc/cp/pt.cc:26393 0x980da7 instantiate_decl(tree_node*, bool, bool) ../../gcc/cp/pt.cc:26685 0x9c780b instantiate_pending_templates(int) ../../gcc/cp/pt.cc:26764 0x8281e6 c_parse_final_cleanups() ../../gcc/cp/decl2.cc:5113
Confirmed. Started with r11-86-gef3479afc5ab41 commit ef3479afc5ab415f00a53fc6f6a990df7f6a0747 Author: Marek Polacek <polacek@redhat.com> Date: Tue Apr 28 22:30:44 2020 -0400 c++: Member template function lookup failure [PR94799] which changed $ ./cc1plus.r11-85 -quiet ~/105229.C -std=c++2a /home/mpolacek/105229.C: In function ‘void bar()’: /home/mpolacek/105229.C:3:12: error: expected ‘(’ before ‘{’ token 3 | [] <int> {}.operator () <> (); | ^ | ( /home/mpolacek/105229.C:3:28: error: expected primary-expression before ‘>’ token 3 | [] <int> {}.operator () <> (); | ^ /home/mpolacek/105229.C:3:31: error: expected primary-expression before ‘)’ token 3 | [] <int> {}.operator () <> (); | ^ to $ ./cc1plus.r11-86 -quiet ~/105229.C -std=c++2a /home/mpolacek/105229.C: In function ‘void bar()’: /home/mpolacek/105229.C:3:12: error: expected ‘(’ before ‘{’ token 3 | [] <int> {}.operator () <> (); | ^ | ( /home/mpolacek/105229.C: In instantiation of ‘void bar() [with <template-parameter-1-1> = int]’: /home/mpolacek/105229.C:7:13: required from here /home/mpolacek/105229.C:3:28: internal compiler error: in lookup_template_class_1, at cp/pt.c:9891 3 | [] <int> {}.operator () <> (); | ~~~~~~~~~~~~~~~~~~~~~~~~~^ unrecognized DWARF version in .debug_info at 6 0xbc18c9 lookup_template_class_1 ../../gcc/cp/pt.c:9891 0xbc3176 lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int, int) ../../gcc/cp/pt.c:10114 0xbd10d0 tsubst_aggr_type ../../gcc/cp/pt.c:13382 0xbdd578 tsubst(tree_node*, tree_node*, int, tree_node*) ../../gcc/cp/pt.c:15169 0xbe0fe1 tsubst_baselink ../../gcc/cp/pt.c:16001 0xbf8c92 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc/cp/pt.c:20188 0xbf638e tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc/cp/pt.c:19730 0xbf1cd2 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/cp/pt.c:18753 0xbea656 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/cp/pt.c:17865 0xbea3e8 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/cp/pt.c:17835 0xbed092 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/cp/pt.c:18154 0xc11905 instantiate_decl(tree_node*, bool, bool) ../../gcc/cp/pt.c:25714 0xc122c4 instantiate_pending_templates(int) ../../gcc/cp/pt.c:25830
GCC 11.3 is being released, retargeting bugs to GCC 11.4.
Seems fixed for GCC 12.2.0 and the trunk.
GCC 11.4 is being released, retargeting bugs to GCC 11.5.
It does not seem to ICE anymore with trunk. Will double check and if so, submit a new testcase.
The testcase ICEs with 11.3 (https://godbolt.org/z/qoYqK8zj9) but not 11.4 (https://godbolt.org/z/K8q6qYPba) Will check if we need to add a new test case of it's already covered.