https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94042
--- Comment #22 from Martin Liška <marxin at gcc dot gnu.org> --- > > good code stores: > 0x104c9124 <._Z19tsubst_template_argP9tree_nodeS0_iS0_+100> std > r0,144(r1) > (gdb) p /x $r0 > $38 = 0x104c9294 > > but the wrong one into a different memory address: > (gdb) p /x $r0 > $28 = 0x104c92a4 > No this is correct, it's return value and it corresponds to backtraces: #0 0x00000000104c90c4 in ._Z19tsubst_template_argP9tree_nodeS0_iS0_ () #1 0x00000000104c9294 in ._Z20tsubst_template_argsP9tree_nodeS0_iS0_ () #2 0x000000001049a3dc in ._ZL25get_partial_spec_bindingsP9tree_nodeS0_S0_ () vs. #0 0x00000000104c90c4 in ._Z19tsubst_template_argP9tree_nodeS0_iS0_ () #1 0x00000000104c92a4 in ._Z20tsubst_template_argsP9tree_nodeS0_iS0_ () #2 0x000000001049a3dc in ._ZL25get_partial_spec_bindingsP9tree_nodeS0_S0_ ()