10 #ifndef __CLANG_OPENMP_DEVICE_FUNCTIONS_H__
11 #define __CLANG_OPENMP_DEVICE_FUNCTIONS_H__
14 #error "This file is for OpenMP compilation only."
21 #pragma omp begin declare variant match( \
22 device = {arch(nvptx, nvptx64)}, implementation = {extension(match_any)})
25 #define __OPENMP_NVPTX__
33 #undef __OPENMP_NVPTX__
36 #pragma omp end declare variant
39 #pragma omp begin declare variant match(device = {arch(amdgcn)})
46 #define __OPENMP_AMDGCN__
47 #pragma push_macro("__device__")
53 #pragma pop_macro("__device__")
54 #undef __OPENMP_AMDGCN__
56 #pragma omp end declare variant
70 #pragma push_macro("OPENMP_NOEXCEPT")
71 #if __cplusplus >= 201103L
72 #define OPENMP_NOEXCEPT noexcept
74 #define OPENMP_NOEXCEPT
78 inline void *
operator new(__SIZE_TYPE__ size) {
81 return ::malloc(size);
84 inline void *
operator new[](__SIZE_TYPE__ size) { return ::operator
new(size); }
86 inline void operator delete(
void *ptr)OPENMP_NOEXCEPT { ::free(ptr); }
88 inline void operator delete[](
void *ptr) OPENMP_NOEXCEPT {
89 ::operator
delete(ptr);
93 #if __cplusplus >= 201402L
94 inline void operator delete(
void *ptr, __SIZE_TYPE__ size)OPENMP_NOEXCEPT {
95 ::operator
delete(ptr);
97 inline void operator delete[](
void *ptr, __SIZE_TYPE__ size) OPENMP_NOEXCEPT {
98 ::operator
delete(ptr);
102 #pragma pop_macro("OPENMP_NOEXCEPT")