• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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{
11id <X> IVAR_x;
12id <X, Y> IVAR_xy;
13id <X, Y, Z> IVAR_xyz;
14Foo <X, Y, Z> *IVAR_Fooxyz;
15Class <X> IVAR_Classx;
16}
17@end
18
19@implementation Intf
20@end
21
22int 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
29typedef short short8 __attribute__((ext_vector_type(8)));
30
31struct 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
42const 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