diff options
author | MyoungJune Park <mj2004.park@samsung.com> | 2016-11-09 18:20:36 -0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@review.vlan103.tizen.org> | 2016-11-09 18:20:36 -0800 |
commit | 2212a42dc9bc8e6fea9d1dfaf7d2325c3a82b6ab (patch) | |
tree | 692e5f3fa6c597e6219766a393411e5a7b82be83 /boost/config/compiler/gcc.hpp | |
parent | 19bc0ae04846b66e010064545c66a1b6f1a042ac (diff) | |
parent | dbcd53541404bc733ffbac7424388791190e1043 (diff) | |
download | boost-2212a42dc9bc8e6fea9d1dfaf7d2325c3a82b6ab.tar.gz boost-2212a42dc9bc8e6fea9d1dfaf7d2325c3a82b6ab.tar.bz2 boost-2212a42dc9bc8e6fea9d1dfaf7d2325c3a82b6ab.zip |
Merge "Rebase for boost 1.62.0" into tizen
Diffstat (limited to 'boost/config/compiler/gcc.hpp')
-rw-r--r-- | boost/config/compiler/gcc.hpp | 40 |
1 files changed, 36 insertions, 4 deletions
diff --git a/boost/config/compiler/gcc.hpp b/boost/config/compiler/gcc.hpp index e91e31e21a..da4ce11762 100644 --- a/boost/config/compiler/gcc.hpp +++ b/boost/config/compiler/gcc.hpp @@ -133,16 +133,42 @@ // // Recent GCC versions have __int128 when in 64-bit mode. // -// We disable this if the compiler is really nvcc as it -// doesn't actually support __int128 as of CUDA_VERSION=5000 +// We disable this if the compiler is really nvcc with C++03 as it +// doesn't actually support __int128 as of CUDA_VERSION=7500 // even though it defines __SIZEOF_INT128__. // See https://svn.boost.org/trac/boost/ticket/8048 +// https://svn.boost.org/trac/boost/ticket/11852 // Only re-enable this for nvcc if you're absolutely sure // of the circumstances under which it's supported: // -#if defined(__SIZEOF_INT128__) && !defined(__CUDACC__) +#if defined(__CUDACC__) +# if defined(BOOST_GCC_CXX11) +# define BOOST_NVCC_CXX11 +# else +# define BOOST_NVCC_CXX03 +# endif +#endif + +#if defined(__SIZEOF_INT128__) && !defined(BOOST_NVCC_CXX03) # define BOOST_HAS_INT128 #endif +// +// Recent GCC versions have a __float128 native type, we need to +// include a std lib header to detect this - not ideal, but we'll +// be including <cstddef> later anyway when we select the std lib. +// +// Nevertheless, as of CUDA 7.5, using __float128 with the host +// compiler in pre-C++11 mode is still not supported. +// See https://svn.boost.org/trac/boost/ticket/11852 +// +#ifdef __cplusplus +#include <cstddef> +#else +#include <stddef.h> +#endif +#if defined(_GLIBCXX_USE_FLOAT128) && !defined(__STRICT_ANSI__) && !defined(BOOST_NVCC_CXX03) +# define BOOST_HAS_FLOAT128 +#endif // C++0x features in 4.3.n and later // @@ -226,6 +252,7 @@ // #if (BOOST_GCC_VERSION < 40800) || !defined(BOOST_GCC_CXX11) # define BOOST_NO_CXX11_ALIGNAS +# define BOOST_NO_CXX11_THREAD_LOCAL #endif // C++0x features in 4.8.1 and later @@ -263,7 +290,12 @@ // // Unused attribute: #if __GNUC__ >= 4 -# define BOOST_ATTRIBUTE_UNUSED __attribute__((unused)) +# define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__)) +#endif +// +// __builtin_unreachable: +#if BOOST_GCC_VERSION >= 40800 +#define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable(); #endif #ifndef BOOST_COMPILER |