Added BOOST_ATTRIBUTE_NORETURN to suppress warnings in boost::throw_exception

[SVN r54683]
This commit is contained in:
Emil Dotchevski
2009-07-05 20:07:20 +00:00
parent 3a02e0696e
commit 6a8b96d9c3
2 changed files with 21 additions and 2 deletions

View File

@ -0,0 +1,19 @@
//Copyright (c) 2009 Emil Dotchevski and Reverge Studios, Inc.
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#ifndef UUID_61531AB0680611DEADD5846855D89593
#define UUID_61531AB0680611DEADD5846855D89593
#include <boost/config.hpp>
#if defined(BOOST_MSVC)
#define BOOST_ATTRIBUTE_NORETURN __declspec(noreturn)
#elif defined(__GNUC__)
#define BOOST_ATTRIBUTE_NORETURN __attribute__((noreturn))
#else
#define BOOST_ATTRIBUTE_NORETURN
#endif
#endif

View File

@ -20,7 +20,7 @@
// http://www.boost.org/libs/utility/throw_exception.html // http://www.boost.org/libs/utility/throw_exception.html
// //
#include <boost/config.hpp> #include <boost/exception/detail/attribute_noreturn.hpp>
#include <boost/detail/workaround.hpp> #include <boost/detail/workaround.hpp>
#include <exception> #include <exception>
@ -54,7 +54,7 @@ void throw_exception( std::exception const & e ); // user defined
inline void throw_exception_assert_compatibility( std::exception const & ) { } inline void throw_exception_assert_compatibility( std::exception const & ) { }
template<class E> inline void throw_exception( E const & e ) template<class E> BOOST_ATTRIBUTE_NORETURN inline void throw_exception( E const & e )
{ {
//All boost exceptions are required to derive std::exception, //All boost exceptions are required to derive std::exception,
//to ensure compatibility with BOOST_NO_EXCEPTIONS. //to ensure compatibility with BOOST_NO_EXCEPTIONS.