This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: cleanup tests failing on MIPS64
- From: Adam Nemet <anemet at caviumnetworks dot com>
- To: gcc at gcc dot gnu dot org
- Cc: jh at suse dot cz
- Date: Sat, 11 Apr 2009 14:56:11 -0700
- Subject: Re: cleanup tests failing on MIPS64
- References: <18911.30312.896739.121024@ropi.home>
Adam Nemet <anemet@caviumnetworks.com> writes:
> For two testresults now the cleanup tests are failing in both gcc and g++:
>
> http://gcc.gnu.org/ml/gcc-testresults/2009-04/msg01031.html
> http://gcc.gnu.org/ml/gcc-testresults/2009-04/msg00592.html
>
> I waited for another testresults because there were some bug fixes in this
> area after the eh changes.
>
> Does somebody know what's going on? I'll look at it otherwise.
I am not exactly sure what has exposed this but the bug seems to be old.
can_throw_external in except.c does not look at the branch delay slot (second
entry in a SEQUENCE) to determine whether the insn may throw or not.
In gcc.dg/cleanup-8.c for example after inlining fn3, the trapping store is
moved to the delay slot of abort, which is a nothrow function so we decide
that fn2 can't throw and then ultimately remove the eh region around fn1 in
fn0.
Adam