https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99523

            Bug ID: 99523
           Summary: Declarations for variable names missing in GIMPLE dump
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: acoplan at gcc dot gnu.org
  Target Milestone: ---

For the following testcase:

int f(__builtin_va_list *ap) { return __builtin_va_arg(*ap, int); }

on AArch64 at -O2 with -fdump-tree-optimized=-, we get:

;; Function f (f, funcdef_no=0, decl_uid=3583, cgraph_uid=1, symbol_order=0)

f (struct  * ap)
{
  int D.3591;
  void * D.3592;
  int * iftmp.2;
  sizetype D.3596;
  sizetype D.3597;
  sizetype D.3598;
  void * D.3599;
  int D.3601;
  int * iftmp.3;
  void * D.3607;
  sizetype D.3608;
  int _4;

  <bb 2> [local count: 1073741824]:
  _9 = ap_2(D)->__gr_offs;
  _10 = ap_2(D)->__stack;
  if (_9 >= 0)
    goto <bb 3>; [59.00%]
  else
    goto <bb 4>; [41.00%]

where the variables _9 and _10 are apparently missing declarations in the IR
dump. I believe the variables came from calls to get_initialized_tmp_var in
aarch64_gimplify_va_arg_expr.

Not sure if this is some missing bookkeeping around the gimplification or
perhaps a bug in the dumping code?

Reply via email to