summaryrefslogtreecommitdiffstats
path: root/lib/ARCMigrate
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-03-31 01:34:06 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-03-31 01:34:06 +0000
commitd76e1cd8276f377c602b8370c7a61dfa7c34c764 (patch)
tree867a2505d581734901bf91fd4ad9e21232ef9be2 /lib/ARCMigrate
parentd786f1a6331246e7d0eedde277f126ab92089eeb (diff)
[arcmt] When fixing the "unassigned init call" ARC error, make sure
to do a nil check for the result of the call. rdar://10950973 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153793 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/ARCMigrate')
-rw-r--r--lib/ARCMigrate/TransUnusedInitDelegate.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/ARCMigrate/TransUnusedInitDelegate.cpp b/lib/ARCMigrate/TransUnusedInitDelegate.cpp
index e2aa6ff93c..60ed32aef4 100644
--- a/lib/ARCMigrate/TransUnusedInitDelegate.cpp
+++ b/lib/ARCMigrate/TransUnusedInitDelegate.cpp
@@ -54,7 +54,11 @@ public:
Transaction Trans(Pass.TA);
Pass.TA.clearDiagnostic(diag::err_arc_unused_init_message,
ME->getExprLoc());
- Pass.TA.insert(ME->getExprLoc(), "self = ");
+ SourceRange ExprRange = ME->getSourceRange();
+ Pass.TA.insert(ExprRange.getBegin(), "if (!(self = ");
+ std::string retStr = ")) return ";
+ retStr += getNilString(Pass.Ctx);
+ Pass.TA.insertAfterToken(ExprRange.getEnd(), retStr);
}
return true;
}