summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorLarisse Voufo <lvoufo@google.com>2013-08-06 01:03:05 +0000
committerLarisse Voufo <lvoufo@google.com>2013-08-06 01:03:05 +0000
commit39a1e507ff0bef4bd6b2fdbab4e38583d2679617 (patch)
tree93b6d63dcb7906152a4879eeaf765de5852aacd4 /clang/lib/CodeGen/CodeGenModule.cpp
parent6f7213cb93a3a6fe4e3dbbee0c1f0d2b34821523 (diff)
downloadbcm5719-llvm-39a1e507ff0bef4bd6b2fdbab4e38583d2679617.tar.gz
bcm5719-llvm-39a1e507ff0bef4bd6b2fdbab4e38583d2679617.zip
Started implementing variable templates. Top level declarations should be fully supported, up to some limitations documented as FIXMEs or TODO. Static data member templates work very partially. Static data member templates of class templates need particular attention...
llvm-svn: 187762
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r--clang/lib/CodeGen/CodeGenModule.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index 21edc7e6513..dbdf016b31b 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -2841,8 +2841,12 @@ void CodeGenModule::EmitTopLevelDecl(Decl *D) {
EmitGlobal(cast<FunctionDecl>(D));
break;
-
+
case Decl::Var:
+ // Skip variable templates
+ if (cast<VarDecl>(D)->getDescribedVarTemplate())
+ return;
+ case Decl::VarTemplateSpecialization:
EmitGlobal(cast<VarDecl>(D));
break;
@@ -2859,6 +2863,8 @@ void CodeGenModule::EmitTopLevelDecl(Decl *D) {
case Decl::UsingShadow:
case Decl::Using:
case Decl::ClassTemplate:
+ case Decl::VarTemplate:
+ case Decl::VarTemplatePartialSpecialization:
case Decl::FunctionTemplate:
case Decl::TypeAliasTemplate:
case Decl::Block:
OpenPOWER on IntegriCloud