blob: 2a61b08c5500bf98472b377d079a27be2066845c [file] [log] [blame]
// RUN: %clang_cc1 -fopenacc -ast-print %s -o - | FileCheck %s
int *Global, *Global2;
int GlobalArray[5];
int GlobalArray2[5];
// CHECK: #pragma acc declare deviceptr(Global) copyin(GlobalArray)
#pragma acc declare deviceptr(Global), copyin(GlobalArray)
// CHECK: #pragma acc declare create(zero: Global2, GlobalArray2)
#pragma acc declare create(zero: Global2, GlobalArray2)
namespace NS {
int NSVar;
int NSArray[5];
// CHECK: #pragma acc declare create(NSVar, NSArray)
#pragma acc declare create(NSVar, NSArray)
}
struct Struct {
static const int StaticMem = 5;
static const int StaticMemArray[5];
// CHECK: #pragma acc declare copyin(always, alwaysin: StaticMem, StaticMemArray)
#pragma acc declare copyin(always, alwaysin: StaticMem, StaticMemArray)
void MemFunc1(int Arg) {
int Local;
int LocalArray[5];
// CHECK: #pragma acc declare present(Arg, Local, LocalArray)
#pragma acc declare present(Arg, Local, LocalArray)
}
void MemFunc2(int Arg);
};
void Struct::MemFunc2(int Arg) {
int Local;
int LocalArray[5];
// CHECK: #pragma acc declare present(Arg, Local, LocalArray)
#pragma acc declare present(Arg, Local, LocalArray)
}
void NormalFunc(int Arg) {
int Local;
int LocalArray[5];
// CHECK: #pragma acc declare present(Arg, Local, LocalArray)
#pragma acc declare present(Arg, Local, LocalArray)
}
void NormalFunc2(int *Arg) {
int Local;
int LocalArray[5];
extern int ExternLocal;
// CHECK: #pragma acc declare deviceptr(Arg) device_resident(Local) link(ExternLocal)
#pragma acc declare deviceptr(Arg) device_resident(Local) link(ExternLocal)
}