diff --git a/libcudacxx/include/cuda/memory_resource b/libcudacxx/include/cuda/memory_resource index 894fd9eb2dd..4c23140f8db 100644 --- a/libcudacxx/include/cuda/memory_resource +++ b/libcudacxx/include/cuda/memory_resource @@ -80,9 +80,10 @@ class resource_ref { */ // clang-format on -#include // cuda_runtime_api needs to come first +#include +// cuda_runtime_api needs to come first -#include "__cccl_config" +#include #if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) # pragma GCC system_header diff --git a/libcudacxx/include/cuda/std/__algorithm_ b/libcudacxx/include/cuda/std/__algorithm_ index a1762b79ae5..2ec4ef668af 100644 --- a/libcudacxx/include/cuda/std/__algorithm_ +++ b/libcudacxx/include/cuda/std/__algorithm_ @@ -13,8 +13,20 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include +// clang-format on + #endif // _CUDA_STD_ALGORITHM diff --git a/libcudacxx/include/cuda/std/__exception_ b/libcudacxx/include/cuda/std/__exception_ index c9b2b855f5c..a54c7a1f77a 100644 --- a/libcudacxx/include/cuda/std/__exception_ +++ b/libcudacxx/include/cuda/std/__exception_ @@ -8,12 +8,25 @@ // //===----------------------------------------------------------------------===// -#ifndef _CUDA_STD_NEW -#define _CUDA_STD_NEW +#ifndef _CUDA_STD_EXCEPTION +#define _CUDA_STD_EXCEPTION -#include "detail/__config" -#include "detail/__pragma_pop" -#include "detail/__pragma_push" -#include "detail/libcxx/include/exception" +#include -#endif // _CUDA_STD_NEW +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off +#include + +#include + +#include +// clang-format on + +#endif // _CUDA_STD_EXCEPTION diff --git a/libcudacxx/include/cuda/std/__memory_ b/libcudacxx/include/cuda/std/__memory_ index 077c795e1ed..ee2af7fdb97 100644 --- a/libcudacxx/include/cuda/std/__memory_ +++ b/libcudacxx/include/cuda/std/__memory_ @@ -11,9 +11,22 @@ #ifndef _CUDA_STD_MEMORY #define _CUDA_STD_MEMORY -#include "detail/__config" -#include "detail/__pragma_pop" -#include "detail/__pragma_push" -#include "detail/libcxx/include/memory" +#include + +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off +#include + +#include + +#include +// clang-format on #endif // _CUDA_STD_MEMORY diff --git a/libcudacxx/include/cuda/std/__new_ b/libcudacxx/include/cuda/std/__new_ index daaf0f48084..39550ac1080 100644 --- a/libcudacxx/include/cuda/std/__new_ +++ b/libcudacxx/include/cuda/std/__new_ @@ -11,9 +11,22 @@ #ifndef _CUDA_STD_NEW #define _CUDA_STD_NEW -#include "detail/__config" -#include "detail/__pragma_pop" -#include "detail/__pragma_push" -#include "detail/libcxx/include/new" +#include + +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off +#include + +#include + +#include +// clang-format on #endif // _CUDA_STD_NEW diff --git a/libcudacxx/include/cuda/std/array b/libcudacxx/include/cuda/std/array index 4dd41a43020..8190edc899d 100644 --- a/libcudacxx/include/cuda/std/array +++ b/libcudacxx/include/cuda/std/array @@ -12,8 +12,20 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include +// clang-format on + #endif // _CUDA_STD_ARRAY diff --git a/libcudacxx/include/cuda/std/atomic b/libcudacxx/include/cuda/std/atomic index 7908a2274ea..3ec9392334f 100644 --- a/libcudacxx/include/cuda/std/atomic +++ b/libcudacxx/include/cuda/std/atomic @@ -13,8 +13,20 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include +// clang-format on + #endif // _CUDA_STD_ATOMIC diff --git a/libcudacxx/include/cuda/std/barrier b/libcudacxx/include/cuda/std/barrier index 94ab6e65df4..6a29770a6fb 100644 --- a/libcudacxx/include/cuda/std/barrier +++ b/libcudacxx/include/cuda/std/barrier @@ -17,8 +17,20 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include +// clang-format on + #endif // _CUDA_STD_BARRIER diff --git a/libcudacxx/include/cuda/std/bit b/libcudacxx/include/cuda/std/bit index a80f1d5d1df..ca3e0ed6470 100644 --- a/libcudacxx/include/cuda/std/bit +++ b/libcudacxx/include/cuda/std/bit @@ -13,8 +13,20 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include +// clang-format on + #endif // _CUDA_STD_BIT diff --git a/libcudacxx/include/cuda/std/cassert b/libcudacxx/include/cuda/std/cassert index b6400ae2694..5270a28dc93 100644 --- a/libcudacxx/include/cuda/std/cassert +++ b/libcudacxx/include/cuda/std/cassert @@ -13,8 +13,20 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include +// clang-format on + #endif // _CUDA_STD_CASSERT diff --git a/libcudacxx/include/cuda/std/cfloat b/libcudacxx/include/cuda/std/cfloat index 13f64607bf3..b27bc58c561 100644 --- a/libcudacxx/include/cuda/std/cfloat +++ b/libcudacxx/include/cuda/std/cfloat @@ -13,8 +13,20 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include +// clang-format on + #endif // _CUDA_STD_CFLOAT diff --git a/libcudacxx/include/cuda/std/chrono b/libcudacxx/include/cuda/std/chrono index 38eff65fb16..5358250f98f 100644 --- a/libcudacxx/include/cuda/std/chrono +++ b/libcudacxx/include/cuda/std/chrono @@ -13,8 +13,20 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include +// clang-format on + #endif // _CUDA_STD_CHRONO diff --git a/libcudacxx/include/cuda/std/climits b/libcudacxx/include/cuda/std/climits index fa981537469..1cb0c9625ce 100644 --- a/libcudacxx/include/cuda/std/climits +++ b/libcudacxx/include/cuda/std/climits @@ -13,8 +13,20 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include +// clang-format on + #endif // _CUDA_STD_CLIMITS diff --git a/libcudacxx/include/cuda/std/cmath b/libcudacxx/include/cuda/std/cmath index 68524be4bad..e3022b2a7ac 100644 --- a/libcudacxx/include/cuda/std/cmath +++ b/libcudacxx/include/cuda/std/cmath @@ -12,8 +12,20 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include +// clang-format on + #endif // _CUDA_STD_CMATH diff --git a/libcudacxx/include/cuda/std/complex b/libcudacxx/include/cuda/std/complex index 4940f7cb2bc..813a47e9afc 100644 --- a/libcudacxx/include/cuda/std/complex +++ b/libcudacxx/include/cuda/std/complex @@ -12,8 +12,20 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include +// clang-format on + #endif // _CUDA_STD_COMPLEX diff --git a/libcudacxx/include/cuda/std/concepts b/libcudacxx/include/cuda/std/concepts index eee16d9b100..8807b10c1e5 100644 --- a/libcudacxx/include/cuda/std/concepts +++ b/libcudacxx/include/cuda/std/concepts @@ -12,8 +12,20 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include +// clang-format on + #endif // _CUDA_STD_CONCEPTS diff --git a/libcudacxx/include/cuda/std/cstddef b/libcudacxx/include/cuda/std/cstddef index 5fe32da86d8..eac158b4763 100644 --- a/libcudacxx/include/cuda/std/cstddef +++ b/libcudacxx/include/cuda/std/cstddef @@ -13,8 +13,20 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include +// clang-format on + #endif // _CUDA_STD_CSTDDEF diff --git a/libcudacxx/include/cuda/std/cstdint b/libcudacxx/include/cuda/std/cstdint index f62a90d93ee..78c18424d24 100644 --- a/libcudacxx/include/cuda/std/cstdint +++ b/libcudacxx/include/cuda/std/cstdint @@ -13,8 +13,20 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include +// clang-format on + #endif // _CUDA_STD_CSTDINT diff --git a/libcudacxx/include/cuda/std/cstdlib b/libcudacxx/include/cuda/std/cstdlib index 36c3d976657..ba11ff9090a 100644 --- a/libcudacxx/include/cuda/std/cstdlib +++ b/libcudacxx/include/cuda/std/cstdlib @@ -11,9 +11,22 @@ #ifndef _CUDA_STD_CSTDLIB #define _CUDA_STD_CSTDLIB -#include "detail/__config" -#include "detail/__pragma_pop" -#include "detail/__pragma_push" -#include "detail/libcxx/include/cstdlib" +#include + +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off +#include + +#include + +#include +// clang-format on #endif // _CUDA_STD_CSTDLIB diff --git a/libcudacxx/include/cuda/std/ctime b/libcudacxx/include/cuda/std/ctime index 72275a6bdf3..38c957eba11 100644 --- a/libcudacxx/include/cuda/std/ctime +++ b/libcudacxx/include/cuda/std/ctime @@ -13,8 +13,20 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include +// clang-format on + #endif // _CUDA_STD_CTIME diff --git a/libcudacxx/include/cuda/std/expected b/libcudacxx/include/cuda/std/expected index 81879381ad4..1448d03e6f5 100644 --- a/libcudacxx/include/cuda/std/expected +++ b/libcudacxx/include/cuda/std/expected @@ -12,8 +12,20 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include +// clang-format on + #endif //_CUDA_STD_EXPECTED diff --git a/libcudacxx/include/cuda/std/functional b/libcudacxx/include/cuda/std/functional index d9b2ccd2ff4..aa04b2b17ca 100644 --- a/libcudacxx/include/cuda/std/functional +++ b/libcudacxx/include/cuda/std/functional @@ -13,8 +13,20 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include +// clang-format on + #endif // _CUDA_STD_FUNCTIONAL diff --git a/libcudacxx/include/cuda/std/initializer_list b/libcudacxx/include/cuda/std/initializer_list index 4224f9a7d5a..5bbda785a96 100644 --- a/libcudacxx/include/cuda/std/initializer_list +++ b/libcudacxx/include/cuda/std/initializer_list @@ -12,8 +12,20 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include +// clang-format on + #endif // _CUDA_STD_INITIALIZER_LIST diff --git a/libcudacxx/include/cuda/std/iterator b/libcudacxx/include/cuda/std/iterator index 01ee8962240..2bcceb7520e 100644 --- a/libcudacxx/include/cuda/std/iterator +++ b/libcudacxx/include/cuda/std/iterator @@ -12,8 +12,20 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include +// clang-format on + #endif // _CUDA_STD_ITERATOR diff --git a/libcudacxx/include/cuda/std/latch b/libcudacxx/include/cuda/std/latch index d3dfaf35f46..a01fd333116 100644 --- a/libcudacxx/include/cuda/std/latch +++ b/libcudacxx/include/cuda/std/latch @@ -8,17 +8,29 @@ // //===----------------------------------------------------------------------===// +#ifndef _CUDA_STD_LATCH +#define _CUDA_STD_LATCH + #if defined(__CUDA_ARCH__) && __CUDA_ARCH__ < 700 # error "CUDA synchronization primitives are only supported for sm_70 and up." #endif -#ifndef _CUDA_STD_LATCH -# define _CUDA_STD_LATCH +#include + +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off +#include -# include +#include -# include -# include -# include +#include +// clang-format on #endif // _CUDA_STD_LATCH diff --git a/libcudacxx/include/cuda/std/limits b/libcudacxx/include/cuda/std/limits index c48b86a5e7d..2fff4fbd700 100644 --- a/libcudacxx/include/cuda/std/limits +++ b/libcudacxx/include/cuda/std/limits @@ -13,8 +13,19 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include + #endif // _CUDA_STD_LIMITS diff --git a/libcudacxx/include/cuda/std/mdspan b/libcudacxx/include/cuda/std/mdspan index b5fa0ec9506..94f48be92b8 100644 --- a/libcudacxx/include/cuda/std/mdspan +++ b/libcudacxx/include/cuda/std/mdspan @@ -13,8 +13,19 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include + #endif // _CUDA_STD_MDSPAN diff --git a/libcudacxx/include/cuda/std/optional b/libcudacxx/include/cuda/std/optional index e89476c2737..d0c31635cb4 100644 --- a/libcudacxx/include/cuda/std/optional +++ b/libcudacxx/include/cuda/std/optional @@ -12,8 +12,19 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include + #endif // _CUDA_STD_OPTIONAL diff --git a/libcudacxx/include/cuda/std/ranges b/libcudacxx/include/cuda/std/ranges index 54672905285..ee42f611e15 100644 --- a/libcudacxx/include/cuda/std/ranges +++ b/libcudacxx/include/cuda/std/ranges @@ -12,8 +12,19 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include + #endif //_CUDA_RANGES diff --git a/libcudacxx/include/cuda/std/ratio b/libcudacxx/include/cuda/std/ratio index 8ebde7c6f51..e7c54ae2bdb 100644 --- a/libcudacxx/include/cuda/std/ratio +++ b/libcudacxx/include/cuda/std/ratio @@ -13,8 +13,19 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include + #endif // _CUDA_STD_RATIO diff --git a/libcudacxx/include/cuda/std/semaphore b/libcudacxx/include/cuda/std/semaphore index 645fce15fa0..77a66d25704 100644 --- a/libcudacxx/include/cuda/std/semaphore +++ b/libcudacxx/include/cuda/std/semaphore @@ -8,17 +8,28 @@ // //===----------------------------------------------------------------------===// +#ifndef _CUDA_STD_SEMAPHORE +#define _CUDA_STD_SEMAPHORE + #if defined(__CUDA_ARCH__) && __CUDA_ARCH__ < 700 # error "CUDA synchronization primitives are only supported for sm_70 and up." #endif -#ifndef _CUDA_STD_SEMAPHORE -# define _CUDA_STD_SEMAPHORE +#include + +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off +#include -# include +#include -# include -# include -# include +#include #endif // _CUDA_STD_SEMAPHORE diff --git a/libcudacxx/include/cuda/std/span b/libcudacxx/include/cuda/std/span index e3592da7e16..e0377b3ffc3 100644 --- a/libcudacxx/include/cuda/std/span +++ b/libcudacxx/include/cuda/std/span @@ -13,8 +13,19 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include + #endif // _CUDA_STD_SPAN diff --git a/libcudacxx/include/cuda/std/tuple b/libcudacxx/include/cuda/std/tuple index 5954f9f1878..add464b67e2 100644 --- a/libcudacxx/include/cuda/std/tuple +++ b/libcudacxx/include/cuda/std/tuple @@ -13,8 +13,19 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include + #endif // _CUDA_STD_TUPLE diff --git a/libcudacxx/include/cuda/std/type_traits b/libcudacxx/include/cuda/std/type_traits index 32f2aa0037c..324781735de 100644 --- a/libcudacxx/include/cuda/std/type_traits +++ b/libcudacxx/include/cuda/std/type_traits @@ -13,8 +13,19 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include + #endif // _CUDA_STD_TYPE_TRAITS diff --git a/libcudacxx/include/cuda/std/utility b/libcudacxx/include/cuda/std/utility index 09291daf0a1..e14af24575a 100644 --- a/libcudacxx/include/cuda/std/utility +++ b/libcudacxx/include/cuda/std/utility @@ -13,8 +13,19 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include + #endif // _CUDA_STD_UTILITY diff --git a/libcudacxx/include/cuda/std/variant b/libcudacxx/include/cuda/std/variant index d1e4ca8e83d..51df1fed20d 100644 --- a/libcudacxx/include/cuda/std/variant +++ b/libcudacxx/include/cuda/std/variant @@ -12,8 +12,19 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include + #endif //_CUDA_STD_VARIANT diff --git a/libcudacxx/include/cuda/std/version b/libcudacxx/include/cuda/std/version index fddca30c2ce..99ae6be07c9 100644 --- a/libcudacxx/include/cuda/std/version +++ b/libcudacxx/include/cuda/std/version @@ -13,8 +13,19 @@ #include -#include +#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) +# pragma GCC system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG) +# pragma clang system_header +#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC) +# pragma system_header +#endif // no system header + +// clang-format off #include + #include +#include + #endif // _CUDA_STD_VERSION diff --git a/libcudacxx/include/cuda/stream_ref b/libcudacxx/include/cuda/stream_ref index d36c2246550..9bb23d3e2ef 100644 --- a/libcudacxx/include/cuda/stream_ref +++ b/libcudacxx/include/cuda/stream_ref @@ -38,8 +38,10 @@ private: } // cuda */ +#include +// cuda_runtime_api needs to come first + #include -#include // cuda_runtime_api needs to come first #if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) # pragma GCC system_header