brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 8966f20 Raw
44 lines · plain
1// RUN: %clang_cc1 -triple x86_64 -verify=expected,dev \2// RUN:            -verify-ignore-unexpected=note \3// RUN:            -fopenmp -fopenmp-targets=amdgcn-amd-amdhsa -o - %s4// RUN: %clang_cc1 -triple x86_64 -verify -verify-ignore-unexpected=note\5// RUN:            -fopenmp -fopenmp-targets=amdgcn-amd-amdhsa -o - -x c++ %s6// RUN: %clang_cc1 -triple x86_64 -verify=dev -verify-ignore-unexpected=note\7// RUN:            -fcuda-is-device -o - %s8 9#if __CUDA__10#include "Inputs/cuda.h"11__device__ void cu_devf();12#endif13 14void bazz() {}15#pragma omp declare target to(bazz) device_type(nohost)16void bazzz() {bazz();}17#pragma omp declare target to(bazzz) device_type(nohost)18void any() {bazz();} // expected-error {{function with 'device_type(nohost)' is not available on host}}19void host1() {bazz();} // expected-error {{function with 'device_type(nohost)' is not available on host}}20#pragma omp declare target to(host1) device_type(host)21void host2() {bazz();} // expected-error {{function with 'device_type(nohost)' is not available on host}}22#pragma omp declare target to(host2)23void device() {host1();}24#pragma omp declare target to(device) device_type(nohost)25void host3() {host1();}26#pragma omp declare target to(host3)27 28#pragma omp declare target29void any1() {any();}30void any2() {host1();}31void any3() {device();} // expected-error {{function with 'device_type(nohost)' is not available on host}}32void any4() {any2();}33#pragma omp end declare target34 35void any5() {any();}36void any6() {host1();}37void any7() {device();} // expected-error {{function with 'device_type(nohost)' is not available on host}}38void any8() {any2();}39 40#if __CUDA__41void cu_hostf() { cu_devf(); } // dev-error {{no matching function for call to 'cu_devf'}}42__device__ void cu_devf2() { cu_hostf(); } // dev-error{{no matching function for call to 'cu_hostf'}}43#endif44