1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s 2 // rdar://16655340 3 @protocol X, Y, Z; 4 @class Foo; 5 6 @protocol Proto 7 @end 8 9 @interface Intf <Proto> 10 { 11 id <X> IVAR_x; 12 id <X, Y> IVAR_xy; 13 id <X, Y, Z> IVAR_xyz; 14 Foo <X, Y, Z> *IVAR_Fooxyz; 15 Class <X> IVAR_Classx; 16 } 17 @end 18 19 @implementation Intf 20 @end 21 22 int main() 23 { 24 int i; 25 typeof(@encode(typeof(i))) e = @encode(typeof(Intf)); // expected-warning {{initializer-string for char array is too long}} 26 } 27 28 // rdar://9255564 29 typedef short short8 __attribute__((ext_vector_type(8))); 30 31 struct foo { 32 char a; 33 int b; 34 long c; 35 short8 d; 36 int array[4]; 37 short int bitfield1:5; 38 unsigned short bitfield2:11; 39 char *string; 40 }; 41 42 const char *RetEncode () { 43 return @encode(struct foo); // expected-warning {{encoding of 'struct foo' type is incomplete because 'short8' (vector of 8 'short' values) component has unknown encoding}} 44 } 45 46