https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93383
--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> --- resolve_args gets a vector of arguments, one of which is (gdb) p arg $3 = <component_ref 0x7fffeaa33a80> (gdb) pt <component_ref 0x7fffeaa33a80 arg:0 <template_parm_index 0x7fffeaa33a50 type <template_type_parm 0x7fffeaa37a80 auto type_0 type_6 VOID align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7fffeaa37690 index 0 level 2 orig_level 2 chain <type_decl 0x7fffeaa3a000 auto>> readonly constant decl <const_decl 0x7fffeaa36150 Str type <template_type_parm 0x7fffeaa37a80 auto> readonly constant decl_0 VOID 93383.C:15:10 align:1 warn_if_not_align:0 initial <template_parm_index 0x7fffeaa33a50>> index 0 level 1 orig_level 1> arg:1 <identifier_node 0x7fffeaa343c0 content normal local bindings <(nil)>> 93383.C:18:26 start: 93383.C:18:22 finish: 93383.C:18:32> i.e. it has no type and we crash on 4429 else if (VOID_TYPE_P (TREE_TYPE (arg)))