This is the mail archive of the gcc@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: __attribute__((cleanup(function)) versus try/finally


On Tuesday, May 6, 2003, at 12:54 PM, Jason Merrill wrote:
 o RTH (and others) are strongly in favor of try/finally, which is
 implemented by several others compilers.

Myself among them. try/finally is well defined, and already implemented in
other languages and other C compilers. IMO the explicit syntax is in
keeping with the spirit of C. If we have any exception handling support
whatsoever in C, it should be try/finally. And we've (for some definition
of we) always intended to have some EH in C someday. Now that we're trying
to integrate pthreads with EH, it's time.

try/finally I think is a reasonable approach.


If table size is a big issue, we can have C default to sjlj EH (lower cost in non-EH code), and integrate in handling for sjlj exceptions into the dwarf EH system. It might be possible to bracket the C code with a single dummy region that just grabs the top element of the sjlj EH stack and throws it, so that non-gcc unwinders can unwind and throw through and into the C code while still being ABI compatible.


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