https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68860
--- Comment #17 from Richard Biener <rguenth at gcc dot gnu.org> --- I have a fix for that, queued into early LTO debug patches. But the testcase still fails... foo (arg7=arg7@entry=30, arg6=<optimized out>, arg5=<optimized out>, arg4=<optimized out>, arg3=<optimized out>, arg2=<optimized out>, arg1=<optimized out>, arg8=7) at /space/rguenther/src/svn/early-lto-debug/gcc/testsuite/gcc.dg/guality/pr68860-1.c:8 8 foo (int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8) vs. w/o LTO: foo (arg7=arg7@entry=30, arg6=6, arg5=5, arg4=4, arg3=3, arg2=2, arg1=1, arg8=7) at /space/rguenther/src/svn/early-lto-debug/gcc/testsuite/gcc.dg/guality/pr68860-1.c:8 8 foo (int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8) but location info looks good to me: <1><1ff>: Abbrev Number: 10 (DW_TAG_subprogram) <200> DW_AT_abstract_origin: <0x2b5> <204> DW_AT_low_pc : 0x400570 <20c> DW_AT_high_pc : 0x47 <214> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) <216> DW_AT_GNU_all_call_sites: 1 <2><216>: Abbrev Number: 11 (DW_TAG_formal_parameter) <217> DW_AT_abstract_origin: <0x306> <21b> DW_AT_location : 0x37 (location list) <2><21f>: Abbrev Number: 12 (DW_TAG_formal_parameter) <220> DW_AT_abstract_origin: <0x2fb> <224> DW_AT_location : 6 byte block: fa 5b 0 0 0 9f (DW_OP_GNU_parameter_ref: <0x1b6>; DW_OP_stack_value) though the DW_OP_GNU_parameter_ref points to an extra indirection: <1><189>: Abbrev Number: 3 (DW_TAG_subprogram) <18a> DW_AT_abstract_origin: <0x2b5> <18e> DW_AT_inline : 1 (inlined) <18f> DW_AT_sibling : <0x1c6> <2><193>: Abbrev Number: 4 (DW_TAG_formal_parameter) <194> DW_AT_abstract_origin: <0x306> ... <2><1b6>: Abbrev Number: 4 (DW_TAG_formal_parameter) <1b7> DW_AT_abstract_origin: <0x2fb> which then ultimatively points to the early debug: <1><2b5>: Abbrev Number: 5 (DW_TAG_subprogram) <2b6> DW_AT_name : foo <2ba> DW_AT_decl_file : 1 <2bb> DW_AT_decl_line : 8 <2bc> DW_AT_prototyped : 1 <2bc> DW_AT_type : <0x2ae> <2c0> DW_AT_sibling : <0x32f> ... <2><2fb>: Abbrev Number: 6 (DW_TAG_formal_parameter) <2fc> DW_AT_name : (indirect string, offset: 0x3ac): arg6 <300> DW_AT_decl_file : 1 <301> DW_AT_decl_line : 8 <302> DW_AT_type : <0x2ae> can't seem to make parameter_ref_descriptor to directly use a reference to the early created DIE.