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: m68k C++ exception handling


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."


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