This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/36254] wrong "control reaches end of non-void function" warning
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 17 May 2008 12:56:06 -0000
- Subject: [Bug c++/36254] wrong "control reaches end of non-void function" warning
- References: <bug-36254-7667@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #4 from rguenth at gcc dot gnu dot org 2008-05-17 12:56 -------
Confirmed. At -O0 we have after CFG building (t1.cpp)
# BLOCK 8
# PRED: 5 (fallthru) 6 (fallthru) 7 (fallthru)
<L6>:;
__comp_dtor (&x);
switch (finally_tmp.3)
{
case 1: goto <L7>;
default : goto <L8>;
}
# SUCC: 9 10
# BLOCK 9
# PRED: 8
<L7>:;
return;
# SUCC: EXIT
This would fix it.
Index: tree-eh.c
===================================================================
--- tree-eh.c (revision 135433)
+++ tree-eh.c (working copy)
@@ -1350,9 +1350,6 @@ decide_copy_try_finally (int ndests, tre
{
int f_estimate, sw_estimate;
- if (!optimize)
- return false;
-
/* Finally estimate N times, plus N gotos. */
f_estimate = estimate_num_insns (finally, &eni_size_weights);
f_estimate = (f_estimate + 1) * ndests;
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2008-05-17 12:56:06
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36254