diff options
Diffstat (limited to 'lib/Analysis/CFG.cpp')
-rw-r--r-- | lib/Analysis/CFG.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/lib/Analysis/CFG.cpp b/lib/Analysis/CFG.cpp index e54fae33fe..0129cfa5e1 100644 --- a/lib/Analysis/CFG.cpp +++ b/lib/Analysis/CFG.cpp @@ -288,7 +288,8 @@ class CFGBuilder { // Caches boolean evaluations of expressions to avoid multiple re-evaluations // during construction of branches for chained logical operators. - llvm::DenseMap<Expr *, TryResult> CachedBoolEvals; + typedef llvm::DenseMap<Expr *, TryResult> CachedBoolEvalsTy; + CachedBoolEvalsTy CachedBoolEvals; public: explicit CFGBuilder(ASTContext *astContext, @@ -450,12 +451,8 @@ private: if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(S)) { if (Bop->isLogicalOp()) { // Check the cache first. - typedef llvm::DenseMap<Expr *, TryResult>::iterator eval_iterator; - eval_iterator I; - bool Inserted; - llvm::tie(I, Inserted) = - CachedBoolEvals.insert(std::make_pair(S, TryResult())); - if (!Inserted) + CachedBoolEvalsTy::iterator I = CachedBoolEvals.find(S); + if (I != CachedBoolEvals.end()) return I->second; // already in map; // Retrieve result at first, or the map might be updated. |