This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: [Bug tree-optimization/26608] New: address of local variables are said to escape even though it is obvious they don't
- From: Daniel Berlin <dberlin at dberlin dot org>
- To: gcc-bugzilla at gcc dot gnu dot org
- Cc: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 08 Mar 2006 14:43:55 -0500
- Subject: Re: [Bug tree-optimization/26608] New: address of local variables are said to escape even though it is obvious they don't
- References: <bug-26608-6528@http.gcc.gnu.org/bugzilla/>
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.
>
>