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

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
We do handle:
```
struct f
{
  int i;
};

int g(int i, int c, struct f *ff)
{
  int *t;
  if (c)
   t = &i;
  else
   t = &ff->i;
  return *t;
}
```

(from PR 21463), just because we have an ADDR_EXPR there. 
This is the issue with   /* Check if we can "cheaply" dereference all phi
arguments.  */


We might be "cheaply" deferencing &ff->i but not ff. I think we just need one
that is cheaply (and not just an ADDR_EXPR which acts like a pointer plus
either).

Reply via email to