Home | History | Annotate | Download | only in SemaObjC
      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