Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r54683 - in branches/release/boost: . exception/detail
From: emil_at_[hidden]
Date: 2009-07-05 16:07:20


Author: emildotchevski
Date: 2009-07-05 16:07:20 EDT (Sun, 05 Jul 2009)
New Revision: 54683
URL: http://svn.boost.org/trac/boost/changeset/54683

Log:
Added BOOST_ATTRIBUTE_NORETURN to suppress warnings in boost::throw_exception
Added:
   branches/release/boost/exception/detail/attribute_noreturn.hpp (contents, props changed)
Text files modified:
   branches/release/boost/throw_exception.hpp | 4 ++--
   1 files changed, 2 insertions(+), 2 deletions(-)

Added: branches/release/boost/exception/detail/attribute_noreturn.hpp
==============================================================================
--- (empty file)
+++ branches/release/boost/exception/detail/attribute_noreturn.hpp 2009-07-05 16:07:20 EDT (Sun, 05 Jul 2009)
@@ -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

Modified: branches/release/boost/throw_exception.hpp
==============================================================================
--- branches/release/boost/throw_exception.hpp (original)
+++ branches/release/boost/throw_exception.hpp 2009-07-05 16:07:20 EDT (Sun, 05 Jul 2009)
@@ -20,7 +20,7 @@
 // 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 <exception>
 
@@ -54,7 +54,7 @@
 
 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,
     //to ensure compatibility with BOOST_NO_EXCEPTIONS.


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk