Boost logo

Boost :

Subject: Re: [boost] Mark throw_exception as noreturn?
From: Emil Dotchevski (emildotchevski_at_[hidden])
Date: 2009-07-05 01:33:06

On Sat, Jul 4, 2009 at 6:11 PM, Mathias
Gaunard<mathias.gaunard_at_[hidden]> wrote:
> Andrey Semashev wrote:
>> I was wondering why the throw_exception function is not marked as
>> noreturn? This makes it troublesome to use it as a drop-in replacement
>> for throw statements as it starts to flag compiler warnings about
>> missing return statements in non-void functions.
>> I suggest to mark the function as noreturn at least for compilers that
>> support it. GCC has __attribute__((noreturn)), MSVC has
>> __declspec(noreturn).
> Why is throw_exception detected as returning something in the first place?
> I've personally tried to force __attribute__((noreturn)) with GCC, but it
> doesn't work, it says the function does return.
> Looking at the code though, I can't tell what is wrong with it.
> A fix to that would be appreciated. Without that, I'd personally rather not
> use throw_exception.

I've added a macro BOOST_ATTRIBUTE_NORETURN. The problem is fixed for
MSVC, feel free to add support for other compilers in

Emil Dotchevski
Reverge Studios, Inc.

Boost list run by bdawes at, gregod at, cpdaniel at, john at