[csl-arm] Fix __cxa{begin,end}_cleanup

Paul Brook paul@codesourcery.com
Fri Dec 17 17:57:00 GMT 2004


I not must have been concentrating when I implemented 
__cxa_{begin,end}_cleanup because I got the interface wrong.
These should maintain a stack of propagating exceptions so that that caller 
does not need to pass the exception object to cxa_end_cleanup.
The attached patch rectifies this.

Tested with cross to arm-none-eabi and arm-unknown-elf.
Applied to csl-arm-branch.

Paul

2004-12-17  Paul Brook  <paul@codesourcery.com>

 * libsupc++/eh_arm.cc (__cxa_begin_cleanup): Add exception to list.
 (cxa_end_cleanup): Call __gnu_end_cleanup.
 (__gnu_end_cleanup): New function.
 * libsupc++/unwind-cxx.h (struct __cxa_exception): Add field for
 propagating exception stack.
 (struct __cxa_exception): Add propagatingExceptions.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.cxa_cleanup
Type: text/x-diff
Size: 4074 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20041217/80baa96e/attachment.bin>


More information about the Libstdc++ mailing list