summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaTemplateInstantiate.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-05-06 00:28:52 +0000
committerDouglas Gregor <dgregor@apple.com>2010-05-06 00:28:52 +0000
commite902956f599c71431f91948b6747e3c293517c00 (patch)
tree95c779bd14d3c78a2a3a5a7ed60919bc367bb000 /clang/lib/Sema/SemaTemplateInstantiate.cpp
parent5b0773e20149485862fbe1520b08940c30f4cb6e (diff)
downloadbcm5719-llvm-e902956f599c71431f91948b6747e3c293517c00.tar.gz
bcm5719-llvm-e902956f599c71431f91948b6747e3c293517c00.zip
Partial and full specializations of a class template may have a
different tag kind ("struct" vs. "class") than the primary template, which has an affect on access control. Should fix the last remaining Boost.Accumulors failure. llvm-svn: 103144
Diffstat (limited to 'clang/lib/Sema/SemaTemplateInstantiate.cpp')
-rw-r--r--clang/lib/Sema/SemaTemplateInstantiate.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaTemplateInstantiate.cpp b/clang/lib/Sema/SemaTemplateInstantiate.cpp
index 14bd2432010..c7489ad8210 100644
--- a/clang/lib/Sema/SemaTemplateInstantiate.cpp
+++ b/clang/lib/Sema/SemaTemplateInstantiate.cpp
@@ -1169,6 +1169,8 @@ Sema::InstantiateClass(SourceLocation PointOfInstantiation,
// Start the definition of this instantiation.
Instantiation->startDefinition();
+
+ Instantiation->setTagKind(Pattern->getTagKind());
// Do substitution on the base class specifiers.
if (SubstBaseSpecifiers(Instantiation, Pattern, TemplateArgs))
OpenPOWER on IntegriCloud