Author: kremenek
Date: Thu Sep 18 23:56:32 2008
New Revision: 56332
URL: http://llvm.org/viewvc/llvm-project?rev=56332&view=rev
Log:
Added test case for PR 2600: proper use of NSError**
Added:
cfe/trunk/test/Analysis/CheckNSError.m
Added: cfe/trunk/test/Analysis/CheckNSError.m
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/CheckNSError.m?rev=56332&view=auto
==============================================================================
--- cfe/trunk/test/Analysis/CheckNSError.m (added)
+++ cfe/trunk/test/Analysis/CheckNSError.m Thu Sep 18 23:56:32 2008
@@ -0,0 +1,31 @@
+// RUN: clang -checker-cfref -verify %s
+
+typedef signed char BOOL;
+typedef int NSInteger;
+typedef struct _NSZone NSZone;
[EMAIL PROTECTED] NSInvocation, NSMethodSignature, NSCoder, NSString,
NSEnumerator;
[EMAIL PROTECTED] NSObject - (BOOL)isEqual:(id)object; @end
[EMAIL PROTECTED] NSCopying - (id)copyWithZone:(NSZone *)zone; @end
[EMAIL PROTECTED] NSCoding - (void)encodeWithCoder:(NSCoder *)aCoder; @end
[EMAIL PROTECTED] NSObject <NSObject> {} @end
[EMAIL PROTECTED] NSDictionary;
[EMAIL PROTECTED] NSError : NSObject <NSCopying, NSCoding> {}
++ (id)errorWithDomain:(NSString *)domain code:(NSInteger)code
userInfo:(NSDictionary *)dict;
[EMAIL PROTECTED]
+extern NSString * const NSXMLParserErrorDomain ;
+
[EMAIL PROTECTED] A
+- (void)myMethodWhichMayFail:(NSError **)error;
+- (BOOL)myMethodWhichMayFail2:(NSError **)error;
[EMAIL PROTECTED]
+
[EMAIL PROTECTED] A
+- (void)myMethodWhichMayFail:(NSError **)error { // expected-warning:
{{Method accepting NSError** argument should have non-void return value to
indicate that an error occurred.}}
+ *error = [NSError errorWithDomain:@"domain" code:1 userInfo:0]; //
expected-warning: {{Potential null dereference.}}
+}
+
+- (BOOL)myMethodWhichMayFail2:(NSError **)error { // no-warning
+ if (error) *error = [NSError errorWithDomain:@"domain" code:1 userInfo:0];
// no-warning
+ return 0;
+}
[EMAIL PROTECTED]
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits