summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDeclCXX.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2012-03-05 17:20:04 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2012-03-05 17:20:04 +0000
commit73ecd70d3870c332e2df6a50b85c32d3b48bdecb (patch)
treea87087df2166dbd20584e45d2074a69d74c145f5 /clang/lib/Sema/SemaDeclCXX.cpp
parent15d48ec46ff5d884506c84c430736be1c4193b3f (diff)
downloadbcm5719-llvm-73ecd70d3870c332e2df6a50b85c32d3b48bdecb.tar.gz
bcm5719-llvm-73ecd70d3870c332e2df6a50b85c32d3b48bdecb.zip
Avoid double lookup.
llvm-svn: 152033
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
-rw-r--r--clang/lib/Sema/SemaDeclCXX.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index 34648805f93..b603b64bda9 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -1128,13 +1128,15 @@ bool Sema::AttachBaseSpecifiers(CXXRecordDecl *Class, CXXBaseSpecifier **Bases,
QualType NewBaseType
= Context.getCanonicalType(Bases[idx]->getType());
NewBaseType = NewBaseType.getLocalUnqualifiedType();
- if (KnownBaseTypes[NewBaseType]) {
+
+ CXXBaseSpecifier *&KnownBase = KnownBaseTypes[NewBaseType];
+ if (KnownBase) {
// C++ [class.mi]p3:
// A class shall not be specified as a direct base class of a
// derived class more than once.
Diag(Bases[idx]->getSourceRange().getBegin(),
diag::err_duplicate_base_class)
- << KnownBaseTypes[NewBaseType]->getType()
+ << KnownBase->getType()
<< Bases[idx]->getSourceRange();
// Delete the duplicate base class specifier; we're going to
@@ -1144,7 +1146,7 @@ bool Sema::AttachBaseSpecifiers(CXXRecordDecl *Class, CXXBaseSpecifier **Bases,
Invalid = true;
} else {
// Okay, add this new base class.
- KnownBaseTypes[NewBaseType] = Bases[idx];
+ KnownBase = Bases[idx];
Bases[NumGoodBases++] = Bases[idx];
if (const RecordType *Record = NewBaseType->getAs<RecordType>())
if (const CXXRecordDecl *RD = cast<CXXRecordDecl>(Record->getDecl()))
OpenPOWER on IntegriCloud