xref: /llvm-project/clang/test/Headers/target_include_new.cpp (revision 63ca93c7d1d1ee91281ff7ccdbd7014151319324)
15d8d994dSJohannes Doerfert // RUN: %clang_cc1 -internal-isystem %S/../../lib/Headers/openmp_wrappers -include __clang_openmp_device_functions.h -internal-isystem %S/Inputs/include -verify -fopenmp -x c++ -triple powerpc64le-unknown-unknown -fopenmp-targets=nvptx64 -emit-llvm-bc %s -o %t-ppc-host.bc
2*63ca93c7SSergio Afonso // RUN: %clang_cc1 -internal-isystem %S/../../lib/Headers/openmp_wrappers -include __clang_openmp_device_functions.h -internal-isystem %S/Inputs/include -verify -fopenmp -x c++ -triple powerpc64le-unknown-unknown -fopenmp-targets=nvptx64 -emit-llvm %s -fopenmp-is-target-device -fopenmp-host-ir-file-path %t-ppc-host.bc -o - | FileCheck %s
35d8d994dSJohannes Doerfert // expected-no-diagnostics
45d8d994dSJohannes Doerfert 
55d8d994dSJohannes Doerfert // Ensure we make `_ZdlPv`, aka. `operator delete(void*)` available without the need to `include <new>`.
65d8d994dSJohannes Doerfert 
75d8d994dSJohannes Doerfert // CHECK: define {{.*}}_ZdlPv
85d8d994dSJohannes Doerfert 
95d8d994dSJohannes Doerfert #ifndef HEADER
105d8d994dSJohannes Doerfert #define HEADER
115d8d994dSJohannes Doerfert 
125d8d994dSJohannes Doerfert class Base {
135d8d994dSJohannes Doerfert   public:
145d8d994dSJohannes Doerfert     virtual ~Base() = default;
155d8d994dSJohannes Doerfert };
165d8d994dSJohannes Doerfert 
175d8d994dSJohannes Doerfert class Derived : public Base {
185d8d994dSJohannes Doerfert   public:
195d8d994dSJohannes Doerfert     #pragma omp declare target
205d8d994dSJohannes Doerfert     Derived();
215d8d994dSJohannes Doerfert     #pragma omp end declare target
225d8d994dSJohannes Doerfert };
235d8d994dSJohannes Doerfert 
Derived()245d8d994dSJohannes Doerfert Derived::Derived() { }
255d8d994dSJohannes Doerfert 
main(void)265d8d994dSJohannes Doerfert int main(void) {
275d8d994dSJohannes Doerfert   #pragma omp target
285d8d994dSJohannes Doerfert   {
295d8d994dSJohannes Doerfert   }
305d8d994dSJohannes Doerfert   return 0;
315d8d994dSJohannes Doerfert }
325d8d994dSJohannes Doerfert #endif
33