------- 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