
method parameter, provide a note pointing at the parameter itself so the user does not have to manually look for the function/method being called and match up parameters to arguments. For example, we now get: t.c:4:5: warning: incompatible pointer types passing 'long *' to parameter of type 'int *' [-pedantic] f(long_ptr); ^~~~~~~~ t.c:1:13: note: passing argument to parameter 'x' here void f(int *x); ^ llvm-svn: 102038
27 lines
555 B
Objective-C
27 lines
555 B
Objective-C
// RUN: %clang_cc1 -verify %s
|
|
|
|
typedef struct objc_class *Class;
|
|
@interface XX
|
|
|
|
- (void)addObserver:(XX*)o; // expected-note 2{{passing argument to parameter 'o' here}}
|
|
|
|
@end
|
|
|
|
@interface YY
|
|
|
|
+ (void)classMethod;
|
|
|
|
@end
|
|
|
|
@implementation YY
|
|
|
|
static XX *obj;
|
|
|
|
+ (void)classMethod {
|
|
[obj addObserver:self]; // expected-warning {{incompatible pointer types sending 'Class' to parameter of type 'XX *'}}
|
|
Class whatever;
|
|
[obj addObserver:whatever]; // expected-warning {{incompatible pointer types sending 'Class' to parameter of type 'XX *'}}
|
|
}
|
|
@end
|
|
|