summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/ASTContext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/AST/ASTContext.cpp')
-rw-r--r--clang/lib/AST/ASTContext.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp
index a9d606c60dc..220b61dbe00 100644
--- a/clang/lib/AST/ASTContext.cpp
+++ b/clang/lib/AST/ASTContext.cpp
@@ -1432,12 +1432,13 @@ bool ASTContext::isAlignmentRequired(QualType T) const {
}
TypeInfo ASTContext::getTypeInfo(const Type *T) const {
- TypeInfo TI = MemoizedTypeInfo[T];
- if (!TI.Align) {
- // This call can invalidate MemoizedTypeInfo[T], so we need a second lookup.
- TI = getTypeInfoImpl(T);
- MemoizedTypeInfo[T] = TI;
- }
+ TypeInfoMap::iterator I = MemoizedTypeInfo.find(T);
+ if (I != MemoizedTypeInfo.end())
+ return I->second;
+
+ // This call can invalidate MemoizedTypeInfo[T], so we need a second lookup.
+ TypeInfo TI = getTypeInfoImpl(T);
+ MemoizedTypeInfo[T] = TI;
return TI;
}
OpenPOWER on IntegriCloud