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: unassig...@gcc.gnu.org
        ReportedBy: kyle.d.moff...@boeing.com


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/

Reply via email to