1 | // RUN: %clang_cc1 -verify %s |
2 | // expected-no-diagnostics |
3 | |
4 | template <unsigned I> |
5 | class C0 { |
6 | static const int iv0 = 1 << I; |
7 | |
8 | enum { |
9 | A = I, |
10 | B = I + 1 |
11 | }; |
12 | |
13 | struct s0 { |
14 | int a : I; |
15 | int b[I]; |
16 | }; |
17 | |
18 | // FIXME: I'm unclear where the right place to handle this is. |
19 | #if 0 |
20 | void f0(int *p) { |
21 | if (p == I) { |
22 | } |
23 | } |
24 | #endif |
25 | |
26 | #if 0 |
27 | // FIXME: Not sure whether we care about these. |
28 | void f1(int *a) |
29 | __attribute__((nonnull(1 + I))) |
30 | __attribute__((constructor(1 + I))) |
31 | __attribute__((destructor(1 + I))) |
32 | __attribute__((sentinel(1 + I, 2 + I))), |
33 | __attribute__((reqd_work_group_size(1 + I, 2 + I, 3 + I))), |
34 | __attribute__((format_arg(1 + I))), |
35 | __attribute__((aligned(1 + I))), |
36 | __attribute__((regparm(1 + I))); |
37 | |
38 | typedef int int_a0 __attribute__((address_space(1 + B))); |
39 | #endif |
40 | |
41 | #if 0 |
42 | // FIXME: This doesn't work. PR4996. |
43 | int f2() { |
44 | return __builtin_choose_expr(I, 1, 2); |
45 | } |
46 | #endif |
47 | |
48 | }; |
49 | |