------- Comment #2 from rguenth at gcc dot gnu dot org 2010-09-02 13:08 -------
Confirmed. This is EH lowering.
<bb 49>:
finally_tmp.226 = 0;
std::auto_ptr<YAMI::Message>::~auto_ptr (&msg);
switch (finally_tmp.226) <default: <L60>, case 1: <L61>>
...
<L61>:
return;
<L60>:
return D.122655;
but the first return w/o value is introduced during GIMPLE lowering.
std::auto_ptr<YAMI::Message>::auto_ptr (&msg, 0B);
try
{
...
}
finally
{
std::auto_ptr<YAMI::Message>::~auto_ptr (&msg);
}
goto <D.122659>;
...
goto <D.122673>;
<D.122659>:
return;
<D.122673>:
return D.122655;
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Component|other |middle-end
Ever Confirmed|0 |1
Keywords| |diagnostic
Last reconfirmed|0000-00-00 00:00:00 |2010-09-02 13:08:56
date| |
Summary|bogus warning at -O0 |[4.5/4.6 Regression] bogus
|(control reaches end of non-|warning at -O0 (control
|void function). |reaches end of non-void
| |function).
Target Milestone|--- |4.5.2
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45497