diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-03-28 16:09:38 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-03-28 16:09:38 +0000 |
commit | c719424caacefad905bb0bf0cca8676b44c77df6 (patch) | |
tree | aee9edc798839d19636347d326abcd60cd3c33e7 | |
parent | a148acdc8234f4896058f14bf9439685b5f52ebe (diff) | |
download | bcm5719-llvm-c719424caacefad905bb0bf0cca8676b44c77df6.tar.gz bcm5719-llvm-c719424caacefad905bb0bf0cca8676b44c77df6.zip |
Added skeleton checking for NSString's method initWithFormat: (do not pass nil). This won't be useful in most cases right now
because the analyzer isn't tracking expected types for an object, and [NSString alloc] just runs "id".
llvm-svn: 48917
-rw-r--r-- | clang/lib/Analysis/BasicObjCFoundationChecks.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/clang/lib/Analysis/BasicObjCFoundationChecks.cpp b/clang/lib/Analysis/BasicObjCFoundationChecks.cpp index f6b4224f05a..82cabaf7a3f 100644 --- a/clang/lib/Analysis/BasicObjCFoundationChecks.cpp +++ b/clang/lib/Analysis/BasicObjCFoundationChecks.cpp @@ -209,12 +209,21 @@ bool BasicObjCFoundationChecks::AuditNSString(NodeTy* N, switch (len) { default: break; - case 8: - + case 8: if (!strcmp(cstr, "compare:")) return CheckNilArg(N, 0); break; + + case 15: + // FIXME: Checking for initWithFormat: will not work in most cases + // yet because [NSString alloc] returns id, not NSString*. We will + // need support for tracking expected-type information in the analyzer + // to find these errors. + if (!strcmp(cstr, "initWithFormat:")) + return CheckNilArg(N, 0); + + break; case 16: if (!strcmp(cstr, "compare:options:")) @@ -234,7 +243,7 @@ bool BasicObjCFoundationChecks::AuditNSString(NodeTy* N, return CheckNilArg(N, 0); break; - + case 29: if (!strcmp(cstr, "compare:options:range:locale:")) return CheckNilArg(N, 0); |