From: Justin Lebar Date: Thu, 17 Nov 2016 01:03:42 +0000 (+0000) Subject: [CUDA] Update docs to indicate that clang now supports std::complex in CUDA mode. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=38b5ba060cf0b4da7e0c5eb0080106f3764d8d17;p=llvm [CUDA] Update docs to indicate that clang now supports std::complex in CUDA mode. The last remaining necessary change was D25403, landed as r287012. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287184 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/CompileCudaWithLLVM.rst b/docs/CompileCudaWithLLVM.rst index 9af9b14b4e5..a9a17172ef4 100644 --- a/docs/CompileCudaWithLLVM.rst +++ b/docs/CompileCudaWithLLVM.rst @@ -171,16 +171,9 @@ below). However, we have heard from implementers that it's possible to get into situations where nvcc will omit a call to an ``std::complex`` function, especially when compiling without optimizations. -clang does not yet support ``std::complex``. Because we interpret the -"wrong-side rule" more strictly than nvcc, ``std::complex`` doesn't work in -``__device__`` or ``__host__ __device__`` code. - -In the meantime, you can get limited ``std::complex`` support in clang by -building your code for C++14. In clang, all ``constexpr`` functions are always -implicitly ``__host__ __device__`` (this corresponds to nvcc's -``--relaxed-constexpr`` flag). In C++14, many ``std::complex`` functions are -``constexpr``, so you can use these with clang. (nvcc does not currently -support C++14.) +As of 2016-11-16, clang supports ``std::complex`` without these caveats. It is +tested with libstdc++ 4.8.5 and newer, but is known to work only with libc++ +newer than 2016-11-16. ```` ---------------