https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69009
--- Comment #3 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- (gdb) l 21505 if (tmpl != gen_tmpl) 21506 /* We should already have the extra args. */ 21507 gcc_assert (TMPL_PARMS_DEPTH (DECL_TEMPLATE_PARMS (gen_tmpl)) 21508 == TMPL_ARGS_DEPTH (gen_args)); 21509 /* And what's in the hash table should match D. */ 21510 gcc_assert ((spec = retrieve_specialization (gen_tmpl, gen_args, 0)) == d 21511 || spec == NULL_TREE); 21512 21513 /* This needs to happen before any tsubsting. */ 21514 if (! push_tinst_level (d)) (gdb) p debug_tree(d) <var_decl 0x7ffff720e000 tuple_size_v type <template_type_parm 0x7ffff720c348 auto readonly VOID align 8 symtab 0 alias set -1 canonical type 0x7ffff720c348 index 0 level 1 orig_level 2> used static tree_3 external decl_5 decl_6 VOID file tuple_size.pass.cc line 7 col 31 align 8 context <translation_unit_decl 0x7ffff70a3168 D.1> not-really-extern template-info 0x7ffff720a720> $10 = void (gdb) p debug_tree(retrieve_specialization (gen_tmpl, gen_args, 0)) <var_decl 0x7ffff7ff6bd0 tuple_size_v type <integer_type 0x7ffff71ef9d8 int readonly type_6 SI size <integer_cst 0x7ffff70b90a8 constant 32> unit size <integer_cst 0x7ffff70b90c0 constant 4> align 32 symtab 0 alias set -1 canonical type 0x7ffff71ef9d8 precision 32 min <integer_cst 0x7ffff70b9060 -2147483648> max <integer_cst 0x7ffff70b9078 2147483647>> readonly constant used static tree_1 tree_2 tree_3 decl_1 decl_5 decl_6 SI file tuple_size.pass.cc line 6 col 33 size <integer_cst 0x7ffff70b90a8 32> unit size <integer_cst 0x7ffff70b90c0 4> align 32 context <translation_unit_decl 0x7ffff70a3168 D.1> initial <integer_cst 0x7ffff70b91f8 0> template-info 0x7ffff720a4a0> $11 = void