12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- // (C) Copyright John Maddock 2001.
- // Use, modification and distribution are subject to 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)
- // See http://www.boost.org/libs/config for the most recent version.
- // MACRO: BOOST_NO_UNREACHABLE_RETURN_DETECTION
- // TITLE: detection of unreachable returns
- // DESCRIPTION: If a return is unreachable, then no return
- // statement should be required, however some
- // compilers insist on it, while other issue a
- // bunch of warnings if it is in fact present.
- #if defined( BOOST_NO_EXCEPTIONS )
- # include <stdlib.h>
- #endif
- namespace boost_no_unreachable_return_detection{
- int checker()
- {
- #if defined( BOOST_NO_EXCEPTIONS ) && (!defined( _MSC_VER ) || defined(__clang__))
- abort();
- #else
- throw 0;
- #endif
- // no return statement: we don't ever get here...
- }
- int check = 0;
- int test()
- {
- if(check)
- return checker();
- return 0;
- }
- }
|