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