1 // RUN: %clang_cc1 %s -pedantic -verify -triple=x86_64-apple-darwin9
2
3 // rdar://6097662
4 typedef int (*T)[2];
5 restrict T x;
6
7 typedef int *S[2];
8 restrict S y; // expected-error {{restrict requires a pointer or reference ('S' (aka 'int *[2]') is invalid)}}
9
10
11
12 // int128_t is available.
a()13 int a() {
14 __int128_t s;
15 __uint128_t t;
16 }
17 // but not a keyword
b()18 int b() {
19 int __int128_t;
20 int __uint128_t;
21 }
22
23
24 // Array type merging should convert array size to whatever matches the target
25 // pointer size.
26 // rdar://6880874
27 extern int i[1LL];
28 int i[(short)1];
29
30 enum e { e_1 };
31 extern int j[sizeof(enum e)]; // expected-note {{previous definition}}
32 int j[42]; // expected-error {{redefinition of 'j' with a different type}}
33
34 // rdar://6880104
35 _Decimal32 x; // expected-error {{GNU decimal type extension not supported}}
36
37
38 // rdar://6880951
39 int __attribute__ ((vector_size (8), vector_size (8))) v; // expected-error {{invalid vector element type}}
40