This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r152984 - in /trunk/gcc: ChangeLog gimple-low.c...
- From: ebotcazou at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Mon, 19 Oct 2009 18:15:49 -0000
- Subject: r152984 - in /trunk/gcc: ChangeLog gimple-low.c...
Author: ebotcazou
Date: Mon Oct 19 18:15:49 2009
New Revision: 152984
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=152984
Log:
* gimple-low.c (struct lower_data): Add cannot_fallthru field.
(lower_stmt) <GIMPLE_BIND>: Add comment.
<GIMPLE_COND, GIMPLE_GOTO, GIMPLE_SWITCH>: Set cannot_fallthru to true
and return.
<GIMPLE_RETURN>: Remove the statement if cannot_fallthru is set.
Otherwise lower it and set cannot_fallthru to true.
<GIMPLE_TRY>: Update cannot_fallthru for GIMPLE_TRY_FINALLY and return.
<GIMPLE_CATCH, GIMPLE_EH_FILTER>; Set cannot_fallthru to false.
<GIMPLE_CALL>: Set cannot_fallthru to false for BUILT_IN_SETJMP and
to true for a noreturn call. Do not remove statements.
<GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TASK>: Set cannot_fallthru to false.
Set cannot_fallthru to false on function exit.
(gimple_stmt_may_fallthru) <GIMPLE_SWITCH>: Really return false.
<GIMPLE_ASSIGN>: Remove.
Added:
trunk/gcc/testsuite/gnat.dg/noreturn2.adb
trunk/gcc/testsuite/gnat.dg/noreturn2.ads
Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimple-low.c
trunk/gcc/testsuite/ChangeLog