Thomas Schwinge, le Sun 19 Nov 2006 22:33:46 +0000, a écrit :
>   printf ("%s:fa[0] = %u\tfa[1] = %u\tra = %u\n", __func__, fa[0], fa[1],

> $ gcc-4.0 test.c && ./a.out
> main:fa = 3216472808    fa[1] = 3084724428      ra = 3084724428
> func:fa[0] = 3216472808 fa[1] = 134513645       ra = 134513645
> #v-
> 
> This is what I would expect.

Mmm, only by chance: don't expect fa[0], fa[1], ... to give you useful
information, only the _value_ of the pointer returned by
__builtin_frame_address() really makes sense. But

> #v+
> main:fa = 3220364948    fa[1] = 3220365064      ra = 3085416652
> func:fa[0] = 3220364952 fa[1] = 134513639       ra = 134513639
> #v-

Yes, looking at asm shows

 80483bf:       8d 45 fc                lea    0xfffffffc(%ebp),%eax

for the call to __builtin_frame_address(0) in main(), which seems odd to
me.

Samuel


_______________________________________________
Bug-hurd mailing list
Bug-hurd@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-hurd

Reply via email to