diff options
Diffstat (limited to 'clang/lib/AST/RecordLayoutBuilder.cpp')
| -rw-r--r-- | clang/lib/AST/RecordLayoutBuilder.cpp | 5 | 
1 files changed, 5 insertions, 0 deletions
| diff --git a/clang/lib/AST/RecordLayoutBuilder.cpp b/clang/lib/AST/RecordLayoutBuilder.cpp index 550a32b0d05..f7da8903504 100644 --- a/clang/lib/AST/RecordLayoutBuilder.cpp +++ b/clang/lib/AST/RecordLayoutBuilder.cpp @@ -720,6 +720,11 @@ ASTRecordLayoutBuilder::ComputeKeyFunction(const CXXRecordDecl *RD) {    if (!RD->isPolymorphic())      return 0; +  // A class template specialization or instantation does not have a key +  // function. +  if (RD->getTemplateSpecializationKind() != TSK_Undeclared) +    return 0; +      for (CXXRecordDecl::method_iterator I = RD->method_begin(),          E = RD->method_end(); I != E; ++I) {      const CXXMethodDecl *MD = *I; | 

