10#ifndef __CLANG_OPENMP_DEVICE_FUNCTIONS_H__
11#define __CLANG_OPENMP_DEVICE_FUNCTIONS_H__
18#pragma omp begin declare variant match( \
19 device = {arch(nvptx, nvptx64)}, implementation = {extension(match_any)})
21#pragma push_macro("__CUDA__")
23#define __OPENMP_NVPTX__
31#undef __OPENMP_NVPTX__
32#pragma pop_macro("__CUDA__")
34#pragma omp end declare variant
38#pragma omp begin declare variant match(device = {arch(amdgcn)})
45#define __OPENMP_AMDGCN__
46#pragma push_macro("__device__")
52#pragma pop_macro("__device__")
53#undef __OPENMP_AMDGCN__
55#pragma omp end declare variant
69#pragma push_macro("OPENMP_NOEXCEPT")
70#if __cplusplus >= 201103L
71#define OPENMP_NOEXCEPT noexcept
73#define OPENMP_NOEXCEPT
77inline void *
operator new(__SIZE_TYPE__ size) {
80 return ::malloc(size);
83inline void *
operator new[](__SIZE_TYPE__ size) { return ::operator
new(size); }
85inline void operator delete(
void *ptr)OPENMP_NOEXCEPT { ::free(ptr); }
87inline void operator delete[](
void *ptr) OPENMP_NOEXCEPT {
88 ::operator
delete(ptr);
92#if __cplusplus >= 201402L
93inline void operator delete(
void *ptr, __SIZE_TYPE__ size)OPENMP_NOEXCEPT {
94 ::operator
delete(ptr);
96inline void operator delete[](
void *ptr, __SIZE_TYPE__ size) OPENMP_NOEXCEPT {
97 ::operator
delete(ptr);
101#pragma pop_macro("OPENMP_NOEXCEPT")