This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/36254] wrong "control reaches end of non-void function" warning



------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]