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
78inline void *
operator new(__SIZE_TYPE__ size) {
81 return ::malloc(size);
84inline void *
operator new[](__SIZE_TYPE__ size) { return ::operator
new(size); }
86inline void operator delete(
void *ptr)OPENMP_NOEXCEPT { ::free(ptr); }
88inline void operator delete[](
void *ptr) OPENMP_NOEXCEPT {
89 ::operator
delete(ptr);
93#if __cplusplus >= 201402L
94inline void operator delete(
void *ptr, __SIZE_TYPE__ size)OPENMP_NOEXCEPT {
95 ::operator
delete(ptr);
97inline void operator delete[](
void *ptr, __SIZE_TYPE__ size) OPENMP_NOEXCEPT {
98 ::operator
delete(ptr);
102#pragma pop_macro("OPENMP_NOEXCEPT")