This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Bug tree-optimization/24694] New: Address taken andaddressable variables and call clobber


On Sun, 2005-11-06 at 15:46 +0000, pinskia at gcc dot gnu dot org wrote:
> Take the following code:
> int f(int);
> int g(void)
> {
>   int i;
>   int *iptr = &i;
>   int **ipp = &iptr;
>   **ipp = 1;
>   f(i);
>   return **ipp;
> }
> ----------
> Here we consider i being call clobber because we lose the fact that iptr is
> addressable 

> but we don't look to see if its address escapes at all (which in
> this case it does not).
No, we don't actually.
In fact, that's not even close to what happens.

iptr isn't renamed, and thus, we assume the address taking of i and storage into iptr is the same as a global store, 
because we know nothing about unrenamed variables.




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]