diff --git a/clang/lib/Analysis/CFG.cpp b/clang/lib/Analysis/CFG.cpp index e54fae33fe86..0129cfa5e18f 100644 --- a/clang/lib/Analysis/CFG.cpp +++ b/clang/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 CachedBoolEvals; + typedef llvm::DenseMap CachedBoolEvalsTy; + CachedBoolEvalsTy CachedBoolEvals; public: explicit CFGBuilder(ASTContext *astContext, @@ -450,12 +451,8 @@ private: if (BinaryOperator *Bop = dyn_cast(S)) { if (Bop->isLogicalOp()) { // Check the cache first. - typedef llvm::DenseMap::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.