------- Comment #1 from dberlin at gcc dot gnu dot org  2006-03-08 19:44 -------
Subject: Re:   New: address of local variables
        are said to escape even though it is obvious they don't

On Wed, 2006-03-08 at 18:59 +0000, pinskia at gcc dot gnu dot org wrote:
> Testcase:
> int *d1;
> int g(int *b)
> {
>   d1 = b;
> }
> int f(int a, int b, int c)
> {
>   int i, j;
>   int *d;
>   if (a)
>     d = &i;
>   else
>     d = &j;
>   i = 2;
>   j = 3;
>   g(&b);
>   if (i!=2)
>    link_error();
>   if (j!=3)
>    link_error();
>   return *d;
> }
> int main(void)
> {
>   f(1, 2,3);
>   return 0;
> }
> 
> This should link with optimize but right now i and j are said to be call
> clobbered for some reason.

What does the dump say.
My guess is that it believes that they are returned from the call, even
though they are not.

> 
> 


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26608

Reply via email to