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.