G++ ABI mismatches

Nathan Sidwell nathan at codesourcery.com
Tue Aug 26 08:14:10 UTC 2003


Richard Henderson wrote:
> On Mon, Aug 25, 2003 at 08:47:51AM +0100, Nathan Sidwell wrote:
> 
>>>... I also noticed that G++ is building __cxa_begin_catch with type
>>>void*(*)(void*), instead of void(*)(void*) as it is defined in section
>>>2.5.3 of the ABI spec.
>>>
>>>Which one is wrong?
>>
>>gcc's implementation is incorrect. its return value is never used
> 
> 
> This is false.
> 
> The return value is the adjusted pointer to the exception object.
> Consider the following test case, which shows that pointer adjustment
> must happen on a per-handler basis.

doh! In grepping for cxa_being_catch I forgot that the compiler
generates those calls. <slaps forehead>

nathan
-- 
Nathan Sidwell    ::   http://www.codesourcery.com   ::     CodeSourcery LLC
          The voices in my head said this was stupid too
nathan at codesourcery.com    ::     http://www.planetfall.pwp.blueyonder.co.uk





More information about the cxx-abi-dev mailing list