From: NAKAMURA Takumi Date: Sun, 25 Mar 2012 06:30:37 +0000 (+0000) Subject: clang/lib/Analysis/CFG.cpp: Get rid of early insertion of placeholder to the map. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6955da2cad4bce19c541ddb85a6d965d77a1a4ab;p=clang clang/lib/Analysis/CFG.cpp: Get rid of early insertion of placeholder to the map. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153407 91177308-0d34-0410-b5e6-96231b3b80d8 --- 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 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.