From 441311c950a40b9bea824016e9e43d7af5e3d4b0 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Fri, 10 Oct 2014 17:22:24 +0100 Subject: [PATCH] Disable __int128 support when the compiler is really CUDA. See https://svn.boost.org/trac/boost/ticket/10418. --- include/boost/config/compiler/clang.hpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/include/boost/config/compiler/clang.hpp b/include/boost/config/compiler/clang.hpp index d7fd76f9..dd54691c 100644 --- a/include/boost/config/compiler/clang.hpp +++ b/include/boost/config/compiler/clang.hpp @@ -52,7 +52,15 @@ // Clang supports "long long" in all compilation modes. #define BOOST_HAS_LONG_LONG -#if defined(__SIZEOF_INT128__) +// +// We disable this if the compiler is really nvcc as it +// doesn't actually support __int128 as of CUDA_VERSION=5000 +// even though it defines __SIZEOF_INT128__. +// See https://svn.boost.org/trac/boost/ticket/10418 +// 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__) # define BOOST_HAS_INT128 #endif