mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-11 00:05:34 +08:00
re PR middle-end/16558 (bogus missing-return warning)
PR middle-end/16558 PR middle-end/19583 * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls through if both operands fall through. From-SVN: r94381
This commit is contained in:
parent
91e390fe3d
commit
09f8cf2de9
@ -1,3 +1,10 @@
|
||||
2005-01-28 Ian Lance Taylor <ian@airs.com>
|
||||
|
||||
PR middle-end/16558
|
||||
PR middle-end/19583
|
||||
* gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
|
||||
through if both operands fall through.
|
||||
|
||||
2005-01-28 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* cse.c (fold_rtx) <PC>: Don't optimize.
|
||||
@ -95,7 +102,7 @@
|
||||
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
|
||||
and better.
|
||||
|
||||
2005-01-27 Ian Lance Taylor <ian@c2micro.com>
|
||||
2005-01-27 Ian Lance Taylor <ian@airs.com>
|
||||
|
||||
PR middle-end/19583
|
||||
* gimple-low.c (try_catch_may_fallthru): New static function.
|
||||
|
@ -348,7 +348,15 @@ block_may_fallthru (tree block)
|
||||
return try_catch_may_fallthru (stmt);
|
||||
|
||||
case TRY_FINALLY_EXPR:
|
||||
return block_may_fallthru (TREE_OPERAND (stmt, 1));
|
||||
/* The finally clause is always executed after the try clause,
|
||||
so if it does not fall through, then the try-finally will not
|
||||
fall through. Otherwise, if the try clause does not fall
|
||||
through, then when the finally clause falls through it will
|
||||
resume execution wherever the try clause was going. So the
|
||||
whole try-finally will only fall through if both the try
|
||||
clause and the finally clause fall through. */
|
||||
return (block_may_fallthru (TREE_OPERAND (stmt, 0))
|
||||
&& block_may_fallthru (TREE_OPERAND (stmt, 1)));
|
||||
|
||||
case MODIFY_EXPR:
|
||||
if (TREE_CODE (TREE_OPERAND (stmt, 1)) == CALL_EXPR)
|
||||
|
Loading…
Reference in New Issue
Block a user