diff options
Diffstat (limited to 'clang/lib/Analysis')
-rw-r--r-- | clang/lib/Analysis/CFG.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Analysis/CFG.cpp b/clang/lib/Analysis/CFG.cpp index 0d100397c0c..4c6eff300f8 100644 --- a/clang/lib/Analysis/CFG.cpp +++ b/clang/lib/Analysis/CFG.cpp @@ -1179,6 +1179,9 @@ void CFGBuilder::findConstructionContexts( findConstructionContexts(ContextSoFar, Cleanups->getSubExpr()); } else if (auto *Cast = dyn_cast<CXXFunctionalCastExpr>(Child)) { findConstructionContexts(ContextSoFar, Cast->getSubExpr()); + } else if (auto *ImplicitCast = dyn_cast<ImplicitCastExpr>(Child)) { + if (ImplicitCast->getCastKind() == CK_NoOp) + findConstructionContexts(ContextSoFar, ImplicitCast->getSubExpr()); } else if (auto *BTE = dyn_cast<CXXBindTemporaryExpr>(Child)) { findConstructionContexts( ConstructionContext::create(cfg->getBumpVectorContext(), BTE, |