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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|2005-01-25 03:37:17         |2021-09-03
     Ever confirmed|0                           |1

--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
So where is a better testcase (which is not depedent on how gimplifier works):
int h(int *a);
int f(int i, int j)
{
  int t = i;
  int t1 = j;
  int g()
  {
    int t11 = t1;
    int t2 = h(&t);
    return t2 + t11;
  }
  int t3 = g();
  return t3 + t1;
}

---- CUT ---
On the gimple level we get:
  _3 = __builtin_dwarf_cfa (0);
  FRAME.1.FRAME_BASE.PARENT = _3;
  FRAME.1.t = i_5(D);
  FRAME.1.t1 = j_7(D);
  t2_11 = h (&FRAME.1.t);
  _12 = j_7(D) + t2_11;
  _9 = FRAME.1.t1;
  _10 = _9 + _12;

We should know that FRAME.1 is special in that h can only escape t field of
FRAME.1 and not the other fields of FRAME.1 too.

Reply via email to