Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r54614 - in trunk/boost: . exception/detail
From: emil_at_[hidden]
Date: 2009-07-03 17:45:38


Author: emildotchevski
Date: 2009-07-03 17:45:37 EDT (Fri, 03 Jul 2009)
New Revision: 54614
URL: http://svn.boost.org/trac/boost/changeset/54614

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

Added: trunk/boost/exception/detail/attribute_noreturn.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/exception/detail/attribute_noreturn.hpp 2009-07-03 17:45:37 EDT (Fri, 03 Jul 2009)
@@ -0,0 +1,17 @@
+//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)
+#else
+#define BOOST_ATTRIBUTE_NORETURN
+#endif
+
+#endif

Modified: trunk/boost/throw_exception.hpp
==============================================================================
--- trunk/boost/throw_exception.hpp (original)
+++ trunk/boost/throw_exception.hpp 2009-07-03 17:45:37 EDT (Fri, 03 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