33 lines · cpp
1// 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.bc2// 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 %s3// expected-no-diagnostics4 5// Ensure we make `_ZdlPv`, aka. `operator delete(void*)` available without the need to `include <new>`.6 7// CHECK: define {{.*}}_ZdlPv8 9#ifndef HEADER10#define HEADER11 12class Base {13 public:14 virtual ~Base() = default;15};16 17class Derived : public Base {18 public:19 #pragma omp declare target20 Derived();21 #pragma omp end declare target22};23 24Derived::Derived() { }25 26int main(void) {27 #pragma omp target28 {29 }30 return 0;31}32#endif33