44 lines
1.0 KiB
C++
44 lines
1.0 KiB
C++
// (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;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|