https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101928
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jamborm at gcc dot gnu.org,
| |marxin at gcc dot gnu.org
Last reconfirmed| |2021-08-16
Ever confirmed|0 |1
Component|debug |ipa
Status|UNCONFIRMED |NEW
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
We're creating a clone and have
<1><f1>: Abbrev Number: 14 (DW_TAG_subprogram)
<f2> DW_AT_name : (indirect string, offset: 0x58): varargs
<f6> DW_AT_decl_file : 1
<f7> DW_AT_decl_line : 2
<f8> DW_AT_decl_column : 13
<f9> DW_AT_prototyped : 1
<f9> DW_AT_inline : 1 (inlined)
<fa> DW_AT_sibling : <0x121>
<2><fe>: Abbrev Number: 15 (DW_TAG_formal_parameter)
<ff> DW_AT_name : q0
<102> DW_AT_decl_file : 1
<103> DW_AT_decl_line : 2
<104> DW_AT_decl_column : 25
<105> DW_AT_type : <0xea>
<2><109>: Abbrev Number: 15 (DW_TAG_formal_parameter)
<10a> DW_AT_name : q1
<10d> DW_AT_decl_file : 1
<10e> DW_AT_decl_line : 2
<10f> DW_AT_decl_column : 33
<110> DW_AT_type : <0xea>
<2><114>: Abbrev Number: 16 (DW_TAG_unspecified_parameters)
<2><115>: Abbrev Number: 17 (DW_TAG_variable)
<116> DW_AT_name : ap
<119> DW_AT_decl_file : 1
<11a> DW_AT_decl_line : 3
<11b> DW_AT_decl_column : 11
<11c> DW_AT_type : <0x9b>
<2><120>: Abbrev Number: 0
<1><121>: Abbrev Number: 18 (DW_TAG_subprogram)
<122> DW_AT_abstract_origin: <0xf1>
<126> DW_AT_low_pc : 0x0
<12e> DW_AT_high_pc : 0xb
<136> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
<138> DW_AT_GNU_all_call_sites: 1
<2><138>: Abbrev Number: 19 (DW_TAG_formal_parameter)
<139> DW_AT_abstract_origin: <0xfe>
<13d> DW_AT_location : 1 byte block: 55 (DW_OP_reg5 (rdi))
<2><13f>: Abbrev Number: 19 (DW_TAG_formal_parameter)
<140> DW_AT_abstract_origin: <0x109>
<144> DW_AT_location : 1 byte block: 54 (DW_OP_reg4 (rsi))
<2><146>: Abbrev Number: 16 (DW_TAG_unspecified_parameters)
<2><147>: Abbrev Number: 20 (DW_TAG_variable)
<148> DW_AT_abstract_origin: <0x115>
<14c> DW_AT_location : 2 byte block: 91 60 (DW_OP_fbreg: -32)
<2><14f>: Abbrev Number: 21 (DW_TAG_formal_parameter)
<150> DW_AT_abstract_origin: <0x109>
<154> DW_AT_const_value : 1
<2><155>: Abbrev Number: 21 (DW_TAG_formal_parameter)
<156> DW_AT_abstract_origin: <0xfe>
<15a> DW_AT_const_value : 0
<2><15b>: Abbrev Number: 0
<1><15c>: Abbrev Number: 0
we're producing
varargs.constprop (int q0, int q1)
{
struct ap[1];
<bb 2> [local count: 1073741824]:
# DEBUG q1 => 1
# DEBUG q0 => 0
# DEBUG BEGIN_STMT
# DEBUG BEGIN_STMT
__builtin_va_start (&ap, 0);
ap ={v} {CLOBBER};
return;
}
and call it as
main ()
{
<bb 2> [local count: 1073741824]:
# DEBUG BEGIN_STMT
varargs.constprop (0, 1, 2);
return 0;
so IPA-CP did some incomplete transform here it seems. Martin?