mirror of https://github.com/CGAL/cgal
direct definition
the extra if was generating fallthru warnings
This commit is contained in:
parent
d370326ec1
commit
604d2fd1ff
|
|
@ -369,15 +369,17 @@ using std::max;
|
||||||
# define CGAL_NO_UNIQUE_ADDRESS
|
# define CGAL_NO_UNIQUE_ADDRESS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Macro CGAL_ASSUME
|
// Macro CGAL_ASSUME and CGAL_unreachable
|
||||||
// Call a builtin of the compiler to pass a hint to the compiler
|
// Call a builtin of the compiler to pass a hint to the compiler
|
||||||
#if __has_builtin(__builtin_unreachable) || (CGAL_GCC_VERSION > 0 && !__STRICT_ANSI__)
|
#if __has_builtin(__builtin_unreachable) || (CGAL_GCC_VERSION > 0 && !__STRICT_ANSI__)
|
||||||
// From g++ 4.5, there exists a __builtin_unreachable()
|
// From g++ 4.5, there exists a __builtin_unreachable()
|
||||||
// Also in LLVM/clang
|
// Also in LLVM/clang
|
||||||
# define CGAL_ASSUME(EX) if(!(EX)) { __builtin_unreachable(); }
|
# define CGAL_ASSUME(EX) if(!(EX)) { __builtin_unreachable(); }
|
||||||
|
# define CGAL_unreachable() __builtin_unreachable()
|
||||||
#elif defined(_MSC_VER)
|
#elif defined(_MSC_VER)
|
||||||
// MSVC has __assume
|
// MSVC has __assume
|
||||||
# define CGAL_ASSUME(EX) __assume(EX)
|
# define CGAL_ASSUME(EX) __assume(EX)
|
||||||
|
# define CGAL_unreachable() __assume(0)
|
||||||
#endif
|
#endif
|
||||||
// If CGAL_ASSUME is not defined, then CGAL_assume and CGAL_assume_code are
|
// If CGAL_ASSUME is not defined, then CGAL_assume and CGAL_assume_code are
|
||||||
// defined differently, in <CGAL/assertions.h>
|
// defined differently, in <CGAL/assertions.h>
|
||||||
|
|
|
||||||
|
|
@ -84,6 +84,7 @@ inline bool possibly(Uncertain<bool> c);
|
||||||
# define CGAL_assume_code(CODE) CODE
|
# define CGAL_assume_code(CODE) CODE
|
||||||
# else // not def CGAL_ASSUME
|
# else // not def CGAL_ASSUME
|
||||||
# define CGAL_assume(EX) CGAL_assertion(EX)
|
# define CGAL_assume(EX) CGAL_assertion(EX)
|
||||||
|
# define CGAL_unreachable() CGAL_assertion(false)
|
||||||
# define CGAL_assume_code(CODE) CGAL_assertion_code(CODE)
|
# define CGAL_assume_code(CODE) CGAL_assertion_code(CODE)
|
||||||
# endif // not def CGAL_ASSUME
|
# endif // not def CGAL_ASSUME
|
||||||
#else // no CGAL_NO_ASSERTIONS
|
#else // no CGAL_NO_ASSERTIONS
|
||||||
|
|
@ -106,8 +107,6 @@ inline bool possibly(Uncertain<bool> c);
|
||||||
# define CGAL_assume_code(CODE) CGAL_assertion_code(CODE)
|
# define CGAL_assume_code(CODE) CGAL_assertion_code(CODE)
|
||||||
#endif // no CGAL_NO_ASSERTIONS
|
#endif // no CGAL_NO_ASSERTIONS
|
||||||
|
|
||||||
#define CGAL_unreachable() CGAL_assume(false)
|
|
||||||
|
|
||||||
# define CGAL_static_assertion(EX) \
|
# define CGAL_static_assertion(EX) \
|
||||||
static_assert(EX, #EX)
|
static_assert(EX, #EX)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue