// RUN: %clang_cc1 -triple amdgcn-amd-amdhsa -fcuda-is-device \ // RUN: -emit-llvm -o - -x hip %s | FileCheck -check-prefix=DEV %s // RUN: %clang_cc1 -triple x86_64-gnu-linux -std=c++11 \ // RUN: -emit-llvm -o - -x hip %s | FileCheck -check-prefix=HOST %s // Negative tests. // RUN: %clang_cc1 -triple amdgcn-amd-amdhsa -fcuda-is-device \ // RUN: -emit-llvm -o - -x hip %s | FileCheck -check-prefix=DEV-NEG %s #include "Inputs/cuda.h" template class A { static int h_member; __device__ static int d_member; __constant__ static int c_member; __managed__ static int m_member; const static int const_member = 0; }; template int A::h_member; template __device__ int A::d_member; template __constant__ int A::c_member; template __managed__ int A::m_member; template const int A::const_member; template class A; //DEV-DAG: @_ZN1AIiE8d_memberE = internal addrspace(1) global i32 0, comdat, align 4 //DEV-DAG: @_ZN1AIiE8c_memberE = internal addrspace(4) constant i32 0, comdat, align 4 //DEV-DAG: @_ZN1AIiE8m_memberE = internal addrspace(1) externally_initialized global ptr addrspace(1) null //DEV-DAG: @_ZN1AIiE12const_memberE = internal addrspace(4) constant i32 0, comdat, align 4 //DEV-NEG-NOT: @_ZN1AIiE8h_memberE //HOST-DAG: @_ZN1AIiE8h_memberE = weak_odr global i32 0, comdat, align 4 //HOST-DAG: @_ZN1AIiE8d_memberE = internal global i32 undef, comdat, align 4 //HOST-DAG: @_ZN1AIiE8c_memberE = internal global i32 undef, comdat, align 4 //HOST-DAG: @_ZN1AIiE8m_memberE = internal externally_initialized global ptr null //HOST-DAG: @_ZN1AIiE12const_memberE = weak_odr constant i32 0, comdat, align 4