diff options
author | Anders Carlsson <andersca@mac.com> | 2011-01-25 18:08:22 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2011-01-25 18:08:22 +0000 |
commit | a5c6c2a84cde5c9b8f8ec0610a9f89ffd54f44ee (patch) | |
tree | 572bb33e0e2926395c6e054169f253bbc37bd434 | |
parent | ae201f75e56f33278b2d48396b35bfa74c32af63 (diff) |
Don't insert class templates into the DynamicClasses vector.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124201 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Sema/Sema.cpp | 2 | ||||
-rw-r--r-- | lib/Sema/SemaDeclCXX.cpp | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/lib/Sema/Sema.cpp b/lib/Sema/Sema.cpp index ca69d69959..60cfd47e0f 100644 --- a/lib/Sema/Sema.cpp +++ b/lib/Sema/Sema.cpp @@ -290,6 +290,8 @@ void Sema::ActOnEndOfTranslationUnit() { // this translation unit, then those vtables are considered "used" and must // be emitted. for (unsigned I = 0, N = DynamicClasses.size(); I != N; ++I) { + assert(!DynamicClasses[I]->isDependentType() && + "Should not see dependent types here!"); if (const CXXMethodDecl *KeyFunction = Context.getKeyFunction(DynamicClasses[I])) { const FunctionDecl *Definition = 0; diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp index 25d0a5effe..d5dea78230 100644 --- a/lib/Sema/SemaDeclCXX.cpp +++ b/lib/Sema/SemaDeclCXX.cpp @@ -2746,7 +2746,7 @@ void Sema::CheckCompletedCXXClass(CXXRecordDecl *Record) { } } - if (Record->isDynamicClass()) + if (Record->isDynamicClass() && !Record->isDependentType()) DynamicClasses.push_back(Record); if (Record->getIdentifier()) { |