/* Check if finding multiple signatures for a method is handled gracefully when method lookup succeeds (see also method-7.m). */
|
/* Check if finding multiple signatures for a method is handled gracefully when method lookup succeeds (see also method-7.m). */
|
/* Contributed by Ziemowit Laski */
|
/* Contributed by Ziemowit Laski */
|
/* { dg-options "-Wstrict-selector-match" } */
|
/* { dg-options "-Wstrict-selector-match" } */
|
/* { dg-do compile } */
|
/* { dg-do compile } */
|
|
|
#include
|
#include
|
|
|
@protocol MyObject
|
@protocol MyObject
|
- (id)initWithData:(Object *)data;
|
- (id)initWithData:(Object *)data;
|
@end
|
@end
|
|
|
@protocol SomeOther
|
@protocol SomeOther
|
- (id)initWithData:(int)data;
|
- (id)initWithData:(int)data;
|
@end
|
@end
|
|
|
@protocol MyCoding
|
@protocol MyCoding
|
- (id)initWithData:(id)data;
|
- (id)initWithData:(id)data;
|
@end
|
@end
|
|
|
@interface NTGridDataObject: Object
|
@interface NTGridDataObject: Object
|
{
|
{
|
Object *_data;
|
Object *_data;
|
}
|
}
|
+ (NTGridDataObject*)dataObject:(id)data;
|
+ (NTGridDataObject*)dataObject:(id)data;
|
@end
|
@end
|
|
|
@implementation NTGridDataObject
|
@implementation NTGridDataObject
|
- (id)initWithData:(id)data {
|
- (id)initWithData:(id)data {
|
return data;
|
return data;
|
}
|
}
|
+ (NTGridDataObject*)dataObject:(id)data
|
+ (NTGridDataObject*)dataObject:(id)data
|
{
|
{
|
NTGridDataObject *result = [[NTGridDataObject alloc] initWithData:data];
|
NTGridDataObject *result = [[NTGridDataObject alloc] initWithData:data];
|
/* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } 33 } */
|
/* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } 33 } */
|
/* { dg-warning "using .\\-\\(id\\)initWithData:\\(Object \\*\\)data." "" { target *-*-* } 9 } */
|
/* { dg-warning "using .\\-\\(id\\)initWithData:\\(Object \\*\\)data." "" { target *-*-* } 9 } */
|
/* { dg-warning "also found .\\-\\(id\\)initWithData:\\(id \\)data." "" { target *-*-* } 17 } */
|
/* { dg-warning "also found .\\-\\(id\\)initWithData:\\(id \\)data." "" { target *-*-* } 17 } */
|
/* { dg-warning "also found .\\-\\(id\\)initWithData:\\(int\\)data." "" { target *-*-* } 13 } */
|
/* { dg-warning "also found .\\-\\(id\\)initWithData:\\(int\\)data." "" { target *-*-* } 13 } */
|
|
|
/* The following warning is a consequence of picking the "wrong" method signature. */
|
/* The following warning is a consequence of picking the "wrong" method signature. */
|
/* { dg-warning "passing argument 1 of .initWithData:. from distinct Objective\\-C type" "" { target *-*-* } 33 } */
|
/* { dg-warning "passing argument 1 of .initWithData:. from distinct Objective\\-C type" "" { target *-*-* } 33 } */
|
return result;
|
return result;
|
}
|
}
|
@end
|
@end
|
|
|