Boost logo

Boost :

From: Stephan Diederich (stephan.diederich_at_[hidden])
Date: 2008-04-09 12:24:07


Hi,

On Wed, Apr 9, 2008 at 4:02 PM, Paul A Bristow <pbristow_at_[hidden]> wrote:
>
>
>
> >-----Original Message-----
> >From: boost-bounces_at_[hidden]
> >[mailto:boost-bounces_at_[hidden]] On Behalf Of Stephan Diederich
> >Sent: 08 April 2008 20:53
> >To: boost_at_[hidden]
> >Subject: [boost] [1.35][lexical_cast][concept check][range]
> >Build error andwarnings with MSVC8 on Warning Level 4
> >
> >As we tried to update to 1.35 today, we found some warnings with MSVC
> >on Warning Level 4 in:
> >
> >lexical_cast:
> >There was a return statement after a call to throw_exception which
> >causes a unreachable code warning.
> >I can see no problem by just removing that return.
> >see http://svn.boost.org/trac/boost/ticket/1791
>
> The problem code is:
>
> throw_exception(bad_lexical_cast(typeid(Source), typeid(Target)));
> return Target(); // normally never reached (throw_exception)
>
> Is the problem that the compiler can't be confident that throw_exception won't ever return? (For that matter, can we?)

Hm, I'm not sure what you mean. Do you think we exchange one warning
with another? "Code not reachable" with "Missing return value"?.
I think _we_ can be sure throw_exception does not return.
throw_exception doc ( http://tinyurl.com/4vup33 ) says that even the
user defined one is not allowed to return.

> So would it be better to *suppress the warning* ?

I'm fine with that.

Thanks for looking into this!

cheers,
stephan

> with a push'n'pop around this:
>
> #if (defined _MSC_VER)
> # pragma warning( push )
> # pragma warning( disable : 4702 ) : unreachable code
> #endif
>
> throw_exception(bad_lexical_cast(typeid(Source), typeid(Target)));
> return Target(); // normally never reached (throw_exception)
>
> #if (defined _MSC_VER)
> # pragma warning( pop )
> #endif
>
> Paul
>
> ---
> Paul A Bristow
> Prizet Farmhouse, Kendal, Cumbria UK LA8 8AB
> +44 1539561830 & SMS, Mobile +44 7714 330204 & SMS
> pbristow_at_[hidden]
>
>
>
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
>


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk