/* Test warning for non existing selectors.  */
/* Contributed by Devang Patel <dpatel@apple.com>.  */

/* { dg-options "-Wselector -fnext-runtime" } */
/* { dg-do compile } */
// { dg-additional-options "-Wno-objc-root-class" }

typedef struct objc_object { struct objc_class *class_pointer; } *id;
typedef struct objc_selector *SEL;

@interface Foo
- (void) foo;
- (void) bar;
@end

@implementation Foo
- (void) bar
{
}

- (void) foo
{
  SEL a,b,c;
  a = @selector(b1ar); /* { dg-warning "creating selector for nonexistent method .b1ar." } */
  b = @selector(bar);
}
@end
