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
59#pragma omp begin declare variant match( \
60 device = {arch(spirv64)}, implementation = {extension(match_any)})
62#define __OPENMP_SPIRV__
67#undef __OPENMP_SPIRV__
69#pragma omp end declare variant
83#pragma push_macro("OPENMP_NOEXCEPT")
84#if __cplusplus >= 201103L
85#define OPENMP_NOEXCEPT noexcept
87#define OPENMP_NOEXCEPT
91inline void *
operator new(__SIZE_TYPE__ size) {
94 return ::malloc(size);
97inline void *
operator new[](__SIZE_TYPE__ size) { return ::operator
new(size); }
99inline void operator delete(
void *ptr)OPENMP_NOEXCEPT { ::free(ptr); }
101inline void operator delete[](
void *ptr) OPENMP_NOEXCEPT {
102 ::operator
delete(ptr);
106#if __cplusplus >= 201402L
107inline void operator delete(
void *ptr, __SIZE_TYPE__ size)OPENMP_NOEXCEPT {
108 ::operator
delete(ptr);
110inline void operator delete[](
void *ptr, __SIZE_TYPE__ size) OPENMP_NOEXCEPT {
111 ::operator
delete(ptr);
115#pragma pop_macro("OPENMP_NOEXCEPT")