forked from OSchip/llvm-project
[CUDA] Define __CUDACC__ before standard library headers
libstdc++ since version 7 when GNU extensions are enabled (e.g. -std=gnu++11) use it to avoid defining overloads using `__float128`. This fixes compiling with GNU extensions failing due to `__float128` being used. Discovered at https://gitlab.kitware.com/cmake/cmake/-/merge_requests/4442#note_737136. Differential Revision: https://reviews.llvm.org/D78392
This commit is contained in:
parent
4e7e414ec9
commit
8e20516540
|
@ -31,11 +31,17 @@
|
|||
// Include some forward declares that must come before cmath.
|
||||
#include <__clang_cuda_math_forward_declares.h>
|
||||
|
||||
// Define __CUDACC__ early as libstdc++ standard headers with GNU extensions
|
||||
// enabled depend on it to avoid using __float128, which is unsupported in
|
||||
// CUDA.
|
||||
#define __CUDACC__
|
||||
|
||||
// Include some standard headers to avoid CUDA headers including them
|
||||
// while some required macros (like __THROW) are in a weird state.
|
||||
#include <cmath>
|
||||
#include <cstdlib>
|
||||
#include <stdlib.h>
|
||||
#undef __CUDACC__
|
||||
|
||||
// Preserve common macros that will be changed below by us or by CUDA
|
||||
// headers.
|
||||
|
|
Loading…
Reference in New Issue