[Bug debug/68860] [6/7 regression] FAIL: gcc.dg/guality/pr36728-1.c -flto -O3 -g line 16/7 arg1 == 1
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Oct 17 11:20:00 GMT 2016
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.
More information about the Gcc-bugs
mailing list