diff options
author | Yaxun (Sam) Liu <yaxun.liu@amd.com> | 2024-07-11 21:54:29 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-11 21:54:29 -0400 |
commit | 3442d12b865a47fd6e604794f0b962a5956663e1 (patch) | |
tree | 9c8ccde94215acc3eff7216cb9d6ab6980ceeb11 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | fa11d1781b0826b9c64b65e6536fd9680a8f0496 (diff) | |
download | llvm-users/yxsamliu/should-emit-var.zip llvm-users/yxsamliu/should-emit-var.tar.gz llvm-users/yxsamliu/should-emit-var.tar.bz2 |
[CUDA][HIP] Fix template static member (#98544)users/yxsamliu/should-emit-var
Should check host/device attributes before emitting static member
of template instantiation.
Fixes: https://github.com/llvm/llvm-project/issues/98151
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r-- | clang/lib/CodeGen/CodeGenModule.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 6c10b4a..599e206 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -5935,7 +5935,8 @@ static void ReplaceUsesOfNonProtoTypeWithRealFunction(llvm::GlobalValue *Old, void CodeGenModule::HandleCXXStaticMemberVarInstantiation(VarDecl *VD) { auto DK = VD->isThisDeclarationADefinition(); - if (DK == VarDecl::Definition && VD->hasAttr<DLLImportAttr>()) + if ((DK == VarDecl::Definition && VD->hasAttr<DLLImportAttr>()) || + (LangOpts.CUDA && !shouldEmitCUDAGlobalVar(VD))) return; TemplateSpecializationKind TSK = VD->getTemplateSpecializationKind(); |