[PATCH] D61949: [OpenMP][bugfix] Fix issues with C++ 17 compilation when handling math functions

Gheorghe-Teodor Bercea via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed May 15 11:52:46 PDT 2019


gtbercea marked an inline comment as done.
gtbercea added inline comments.


================
Comment at: lib/Headers/__clang_cuda_device_functions.h:1477
 #endif // CUDA_VERSION >= 9020
+#if __cplusplus >= 201703L
+__DEVICE__ int abs(int __a) noexcept { return __nv_abs(__a); }
----------------
tra wrote:
> jdoerfert wrote:
> > Hahnfeld wrote:
> > > If I recall correctly, `__cplusplus` is not defined in C mode, so both GCC and Clang will issue a warning with `-Wundef`.
> > > 
> > > Maybe this can be solved with something similar to:
> > > ```lang=c
> > > #ifdef __cplusplus
> > > #define cpp_version __cplusplus
> > > #else
> > > #define cpp_version 0
> > > #endif
> > > ```
> > > (to avoid repetition of `#if defined(__cplusplus) && __cplusplus >= 201703L`)
> > I dislike defining the version and advice to repeating `#if defined(__cplusplus) && __cplusplus >= 201703L)`
> > 
> I agree with @jdoerfert.
> If that's needed too often, we can move c++-only functions under one global `#if defined(__cplusplus)`.
> 
@tra is this closer to what you want?


Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D61949/new/

https://reviews.llvm.org/D61949





More information about the cfe-commits mailing list