http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50906
Bug #: 50906
Summary: e500 exception unwinding under "-Os" causes SIGSEGV
Classification: Unclassified
Product: gcc
Version: 4.6.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: [email protected]
ReportedBy: [email protected]
Created attachment 25649
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25649
Test case, part 1
The libffi test-suite is failing on an e500v2 build of GCC 4.6.1 with a
segmentation fault in libgcc (called from "throw()" in the "unwindtest.cc"
file).
The target GCC configure options:
--build/--host/--target=powerpc-linux-gnuspe
--with-cpu=8548
--enable-e500_double
--with-long-double-128
I have extracted it to the attached minimal test-case, compiled as follows:
$ g++ -Wall -Wextra -Werror -ggdb3 -Os -c unwindtest.cc -o unwindtest.o
$ g++ -Wall -Wextra -Werror -ggdb3 -Os -c unwindtestfunc.cc -o
unwindtestfunc.o
$ g++ -ggdb3 -Os -o unwindtest unwindtest.o unwindtestfunc.o
The test fails if "unwindtestfunc.cc" is built with "-Os", but not if it is
built with "-O2". The compile options for unwindtest.cc have no effect on the
success or failure of the test.
Cheers,
Kyle Moffett
--
Curious about my work on the Debian powerpcspe port?
I'm keeping a blog here: http://pureperl.blogspot.com/