r325969 - [CFG] NFC: Speculative attempt to fix MSVC internal compiler error on buildbot.
Artem Dergachev via cfe-commits
cfe-commits at lists.llvm.org
Fri Feb 23 14:49:25 PST 2018
Author: dergachev
Date: Fri Feb 23 14:49:25 2018
New Revision: 325969
URL: http://llvm.org/viewvc/llvm-project?rev=325969&view=rev
Log:
[CFG] NFC: Speculative attempt to fix MSVC internal compiler error on buildbot.
Don't use fancy initialization and member access in a DenseMap.
Modified:
cfe/trunk/lib/Analysis/CFG.cpp
Modified: cfe/trunk/lib/Analysis/CFG.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/CFG.cpp?rev=325969&r1=325968&r2=325969&view=diff
==============================================================================
--- cfe/trunk/lib/Analysis/CFG.cpp (original)
+++ cfe/trunk/lib/Analysis/CFG.cpp Fri Feb 23 14:49:25 2018
@@ -476,7 +476,7 @@ class CFGBuilder {
// This is set in the construction trigger and read when the constructor
// itself is being visited.
llvm::DenseMap<CXXConstructExpr *, const ConstructionContext *>
- ConstructionContextMap{};
+ ConstructionContextMap;
bool badCFG = false;
const CFG::BuildOptions &BuildOpts;
@@ -497,7 +497,8 @@ public:
explicit CFGBuilder(ASTContext *astContext,
const CFG::BuildOptions &buildOpts)
: Context(astContext), cfg(new CFG()), // crew a new CFG
- BuildOpts(buildOpts) {}
+ ConstructionContextMap(), BuildOpts(buildOpts) {}
+
// buildCFG - Used by external clients to construct the CFG.
std::unique_ptr<CFG> buildCFG(const Decl *D, Stmt *Statement);
@@ -1162,7 +1163,9 @@ void CFGBuilder::findConstructionContext
assert(PreviousContext->isStrictlyMoreSpecificThan(ContextSoFar) &&
"Already within a different construction context!");
} else {
- ConstructionContextMap[CE] = ContextSoFar;
+ auto Pair =
+ ConstructionContextMap.insert(std::make_pair(CE, ContextSoFar));
+ assert(Pair.second && "Already within a construction context!");
}
} else if (auto *Cleanups = dyn_cast<ExprWithCleanups>(Child)) {
findConstructionContexts(ContextSoFar, Cleanups->getSubExpr());
More information about the cfe-commits
mailing list