diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2012-03-31 01:34:06 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2012-03-31 01:34:06 +0000 |
commit | d76e1cd8276f377c602b8370c7a61dfa7c34c764 (patch) | |
tree | 867a2505d581734901bf91fd4ad9e21232ef9be2 /lib/ARCMigrate | |
parent | d786f1a6331246e7d0eedde277f126ab92089eeb (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.cpp | 6 |
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; } |