summaryrefslogtreecommitdiffstats
path: root/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-07-15 22:04:00 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-07-15 22:04:00 +0000
commitf59daff52e9f1e856c448ad1d8ebe8498d497f58 (patch)
tree36793bbf861a8745e96ee1f4b550ebc424d9f21b /clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp
parentf8412cdae978c6343755ecf5340204cc3b280f12 (diff)
downloadbcm5719-llvm-f59daff52e9f1e856c448ad1d8ebe8498d497f58.tar.gz
bcm5719-llvm-f59daff52e9f1e856c448ad1d8ebe8498d497f58.zip
[arcmt] Rewrite to "foo = nil;" not "foo = 0;", as suggested by Jordy.
llvm-svn: 135309
Diffstat (limited to 'clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp')
-rw-r--r--clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp b/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp
index 8e6c533991e..6f917b32465 100644
--- a/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp
+++ b/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp
@@ -19,7 +19,9 @@
#include "Transforms.h"
#include "Internals.h"
+#include "clang/Sema/Sema.h"
#include "clang/Sema/SemaDiagnostic.h"
+#include "clang/Lex/Preprocessor.h"
#include "clang/AST/ParentMap.h"
using namespace clang;
@@ -115,10 +117,14 @@ public:
if (E->getMethodFamily() == OMF_release &&
isRemovable(E) && isInAtFinally(E)) {
- // Change the -release to "receiver = 0" in a finally to avoid a leak
+ // Change the -release to "receiver = nil" in a finally to avoid a leak
// when an exception is thrown.
Pass.TA.replace(E->getSourceRange(), rec->getSourceRange());
- Pass.TA.insertAfterToken(rec->getLocEnd(), " = 0");
+ if (Pass.SemaRef.getPreprocessor()
+ .getIdentifierInfo("nil")->hasMacroDefinition())
+ Pass.TA.insertAfterToken(rec->getLocEnd(), " = nil");
+ else
+ Pass.TA.insertAfterToken(rec->getLocEnd(), " = 0");
return true;
}
OpenPOWER on IntegriCloud