This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: m68k C++ exception handling
- From: Andreas Schwab <schwab at suse dot de>
- To: Bernardo Innocenti <bernie at develer dot com>
- Cc: gcc at gcc dot gnu dot org, Peter Barada <pbarada at mail dot wm dot sps dot mot dot com>,uClinux development list <uclinux-dev at uclinux dot org>,<paulg at multitrode dot com dot au>
- Date: Mon, 18 Aug 2003 11:27:02 +0200
- Subject: Re: m68k C++ exception handling
- References: <200308170411.44931.bernie@develer.com>
Bernardo Innocenti <bernie@develer.com> writes:
|> C++ exceptions handling appears to be broken on m68k in both GCC 3.3.1 and
|> CVS HEAD (I've tested only on ColdFire targets). This didn't work also in
|> GCC 2.95.3 with the uClinux patches I've ported forward, so the cause
|> might be identical.
I tested this on m68k-linux with positive results, but this is already
quite some time ago.
|> Some random questions:
|>
|> - does the EH handling rely on frame-pointers? Is it supposed to work
|> on all platforms even with -fomit-frame-pointers?
This was also tested on m68k-linux, and seems to work fine. The DWARF2
unwind information is supposed to describe exactly where all the registers
are saved, independent of the frame pointer.
|> - How are __builtin_extract_return_addr() and __builtin_return_address()
|> supposed to work? Do they need some special support in back-ends?
Only __builtin_return_address with an argument > 0 requires a frame
pointer, otherwise the place of the return address is known by the frame
size, and the generic code works fine on m68k. For
__builtin_extract_return_addr no special code is needed either, since the
return address is just stored on the stack.
|> - It's way possible that the EH stuff works fine on all m68k platforms
|> except ColdFire, perhaps because of the different frame layout.
|> I'd really much like to know if the test program works on other
|> m68k targets and on embedded boards (no uClinux).
The testsuite runs successfully on m68k-linux, at least it did the last
time I checked. In which way does the frame layout differ on ColdFire?
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."