summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.cpp')
-rw-r--r--clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.cpp b/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.cpp
index ceb22390a1f..14986d8dca9 100644
--- a/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.cpp
+++ b/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.cpp
@@ -28,7 +28,14 @@ void UseAutoFixer::run(const MatchFinder::MatchResult &Result) {
if (!SM.isFromMainFile(D->getLocStart()))
return;
- const CXXConstructExpr *Construct = cast<CXXConstructExpr>(D->getInit());
+ const Expr *ExprInit = D->getInit();
+
+ // Skip expressions with cleanups from the initializer expression.
+ if (const ExprWithCleanups *E = dyn_cast<ExprWithCleanups>(ExprInit))
+ ExprInit = E->getSubExpr();
+
+ const CXXConstructExpr *Construct = cast<CXXConstructExpr>(ExprInit);
+
assert(Construct->getNumArgs() == 1u &&
"Expected constructor with single argument");
OpenPOWER on IntegriCloud