diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-05-06 00:28:52 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-05-06 00:28:52 +0000 |
commit | e902956f599c71431f91948b6747e3c293517c00 (patch) | |
tree | 95c779bd14d3c78a2a3a5a7ed60919bc367bb000 /clang/lib/Sema/SemaTemplateInstantiate.cpp | |
parent | 5b0773e20149485862fbe1520b08940c30f4cb6e (diff) | |
download | bcm5719-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.cpp | 2 |
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)) |