1 // RUN: %clang_cc1 -fsyntax-only -verify -fblocks %s
3 void takevoidptr(void*);
13 - (void)instanceMethod;
17 - (void)instanceMethod;
23 - (void)instanceMethod {
24 [super iMethod]; // expected-warning{{'A' may not respond to 'iMethod'}}
26 // Use of super in a block is ok and does codegen to the right thing.
29 [super instanceMethod];
34 [super cMethod]; // expected-warning{{method '+cMethod' not found (return type defaults to 'id')}}
36 id X[] = { [ super superClassMethod] };
38 [ super.superClassMethod iMethod],
39 super.superClassMethod,
40 (id)super.superClassMethod // not a cast of super: rdar://7853261
54 [super m]; // expected-warning{{receiver type 'int' is not 'id'}}
56 void f1(id puper) { // expected-note {{'puper' declared here}}
57 [super m]; // expected-error{{use of undeclared identifier 'super'}}
75 struct SomeStruct super = { 0 };
81 [(B*)super instanceMethod];
82 int *s1 = (int*)super;
84 id X[] = { [ super superClassMethod] };