[Bug debug/83157] [6/7/8 regression] gcc.dg/guality/pr41616-1.c fail, inline instances refer to concrete instance as abstract origin
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jan 10 12:31:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83157
--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> ---
I'm quite sure older GCC must be somehow affected - or I'm really curious how
they are not.
While the patch fixes the dwarf for the small C testcase it doesn't fix the
pr41616-1.c execute fail. The dwarf looks "fine" there as well though,
what we lack is a call-site parameter for the 2nd gual_checkval:
<4><6e5>: Abbrev Number: 39 (DW_TAG_GNU_call_site)
<6e6> DW_AT_low_pc : 0x19d
<6ee> DW_AT_abstract_origin: <0x859>
<6f2> DW_AT_sibling : <0x70a>
<5><6f6>: Abbrev Number: 38 (DW_TAG_GNU_call_site_parameter)
<6f7> DW_AT_location : 1 byte block: 55 (DW_OP_reg5 (rdi))
<6f9> DW_AT_GNU_call_site_value: 9 byte block: 3 78 0 0 0 0 0 0 0
(DW_OP_addr: 78)
<5><703>: Abbrev Number: 38 (DW_TAG_GNU_call_site_parameter)
<704> DW_AT_location : 1 byte block: 54 (DW_OP_reg4 (rsi))
<706> DW_AT_GNU_call_site_value: 2 byte block: 9 ff (DW_OP_const1s:
-1)
<5><709>: Abbrev Number: 0
<4><70a>: Abbrev Number: 37 (DW_TAG_GNU_call_site)
<70b> DW_AT_low_pc : 0x1b6
<713> DW_AT_abstract_origin: <0x859>
<5><717>: Abbrev Number: 38 (DW_TAG_GNU_call_site_parameter)
<718> DW_AT_location : 1 byte block: 55 (DW_OP_reg5 (rdi))
<71a> DW_AT_GNU_call_site_value: 9 byte block: 3 78 0 0 0 0 0 0 0
(DW_OP_addr: 78)
<5><724>: Abbrev Number: 0
<4><725>: Abbrev Number: 0
and the location list for the decl itself is
00000365 0000000000000198 00000000000001ae (DW_OP_const1s: -1;
DW_OP_stack_value)
which covers too many instructions(?). We expand from
# DEBUG b => -1
# DEBUG BEGIN_STMT
guality_check.constprop ("b", -1);
# DEBUG BEGIN_STMT
if (_35 > 0)
goto <bb 18>; [64.00%]
else
goto <bb 19>; [36.00%]
;; succ: 18
;; 19
;; basic block 18, loop depth 0
;; pred: 17
;; succ: 19
;; basic block 19, loop depth 0
;; pred: 17
;; 18
# b_88 = PHI <-1(17), 1(18)>
# DEBUG b => b_88
# DEBUG BEGIN_STMT
_89 = (long int) b_88;
guality_check.constprop ("b", _89);
More information about the Gcc-bugs
mailing list