Actually I have two questions.  First, what is the difference between
-fargument-noalias-global and -fargument-noalias-anything (please
provide an example, not cite documentation ;))

Second question.  Does "global memory" include memory that escaped?
Thus, with -fargument-noalias-global:

int *p;
void foo(int *q)
{
  may *q and *p alias?
}

consider

void bar()
{
  int i;
  p = &i;
  foo (&i);
}

does that call to foo invoke undefined behavior if built with
-fargument-noalias-global?  Is _that_ the difference vs.
-fargument-noalias-anything (-global would not alias global
decls, -anything would not alias any reachable memory (other than
what the parameter reaches?  or just what it points to?)).

Thanks for clarifications.
Richard.

Reply via email to