xref: /freebsd/contrib/llvm-project/clang/lib/Headers/llvm_libc_wrappers/assert.h (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
1*0fca6ea1SDimitry Andric //===-- Wrapper for C standard assert.h declarations on the GPU -*- C++ -*-===//
25f757f3fSDimitry Andric //
35f757f3fSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
45f757f3fSDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
55f757f3fSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
65f757f3fSDimitry Andric //
75f757f3fSDimitry Andric //===----------------------------------------------------------------------===//
85f757f3fSDimitry Andric 
95f757f3fSDimitry Andric #ifndef __CLANG_LLVM_LIBC_WRAPPERS_ASSERT_H__
105f757f3fSDimitry Andric #define __CLANG_LLVM_LIBC_WRAPPERS_ASSERT_H__
115f757f3fSDimitry Andric 
125f757f3fSDimitry Andric #if !defined(_OPENMP) && !defined(__HIP__) && !defined(__CUDA__)
135f757f3fSDimitry Andric #error "This file is for GPU offloading compilation only"
145f757f3fSDimitry Andric #endif
155f757f3fSDimitry Andric 
165f757f3fSDimitry Andric #include_next <assert.h>
175f757f3fSDimitry Andric 
185f757f3fSDimitry Andric #if __has_include(<llvm-libc-decls/assert.h>)
195f757f3fSDimitry Andric 
205f757f3fSDimitry Andric #if defined(__HIP__) || defined(__CUDA__)
215f757f3fSDimitry Andric #define __LIBC_ATTRS __attribute__((device))
225f757f3fSDimitry Andric #endif
235f757f3fSDimitry Andric 
245f757f3fSDimitry Andric #pragma omp begin declare target
255f757f3fSDimitry Andric 
265f757f3fSDimitry Andric #include <llvm-libc-decls/assert.h>
275f757f3fSDimitry Andric 
285f757f3fSDimitry Andric #pragma omp end declare target
295f757f3fSDimitry Andric 
305f757f3fSDimitry Andric #undef __LIBC_ATTRS
315f757f3fSDimitry Andric 
325f757f3fSDimitry Andric #endif
335f757f3fSDimitry Andric 
345f757f3fSDimitry Andric #endif // __CLANG_LLVM_LIBC_WRAPPERS_ASSERT_H__
35