[Bug c++/25973] [4.4/4.5/4.6/4.7 Regression] Wrong warning: control reaches end of non-void function
vries at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Nov 22 15:06:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25973
vries at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |vries at gcc dot gnu.org
--- Comment #11 from vries at gcc dot gnu.org 2011-11-22 14:51:37 UTC ---
I can't reproduce the problem from the description with 4.7, but I can
reproduce the problem from comment 4 with 4.7.
Tentative patch for test-case from comment 4:
...
Index: gcc/gimple-low.c
===================================================================
--- gcc/gimple-low.c (revision 181172)
+++ gcc/gimple-low.c (working copy)
@@ -680,6 +680,12 @@ block_may_fallthru (const_tree block)
case CLEANUP_POINT_EXPR:
return block_may_fallthru (TREE_OPERAND (stmt, 0));
+ case DO_STMT:
+ /* DO_STMT is part of cp-tree.def, so this should be moved to a
+ cp-specific file. */
+ /* If DO_BODY doesn't fall thru, then DO_STMT doesn't either. */
+ return block_may_fallthru (TREE_OPERAND (stmt, 1));
+
default:
return true;
}
...
Perhaps we should file a separate bug for the test-case from comment 4.
More information about the Gcc-bugs
mailing list