libstdc++/5625: exception unwinding creates invalid pointer o n mips

cgd@broadcom.com cgd@broadcom.com
Tue Apr 23 16:46:00 GMT 2002


Eric asked me a further question off-list, and I responded:

> [I believe] The problem is that:
>
> typedef unsigned _Unwind_Ptr __attribute__((__mode__(__pointer__)));
>
> So the cast to _Unwind_Ptr makes the 32-bit result unsigned, and the
> promotion to the 64-bit _Unwind_Word happens therefore to zero extend,
> rather than sign extend.
>
> If _Unwind_Ptr were signed, the right thing should happen.  (iirc; i
> seem to recall having discussed this with Ed previously [and him
> having confirmed that result, but I may be mistaken].)



chris



More information about the Gcc-bugs mailing list