1 static _Alignas(8)	int v;
2 static _Alignas(long)	int t;
3 static _Alignas(void *)	int p;
4 static _Alignas(int[4])	int a;
5 static _Alignas(0)	int z;
6 static _Alignas(3)	int bnpow2;
7 static _Alignas(-1)	int bneg;
8 static _Alignas(-2)	int bnegpow2;
9 static _Alignas(v)	int bnc;
10 static _Alignas(+)	int bsyn;
11 
check(void)12 static int check(void)
13 {
14 	if (_Alignof(v) != 8)
15 		return -1;
16 	if (_Alignof(t) != _Alignof(long))
17 		return -1;
18 	if (_Alignof(p) != _Alignof(void *))
19 		return -1;
20 	if (_Alignof(a) != _Alignof(int))
21 		return -1;
22 
23 	return 0;
24 }
25 
26 /*
27  * check-name: c11-alignas
28  * check-command: test-linearize -std=c11 $file
29  *
30  * check-error-start
31 c11-alignas.c:6:25: warning: non-power-of-2 alignment
32 c11-alignas.c:7:25: warning: non-positive alignment
33 c11-alignas.c:8:25: warning: non-positive alignment
34 c11-alignas.c:9:17: error: bad constant expression
35 c11-alignas.c:10:17: error: Syntax error in unary expression
36  * check-error-end
37  *
38  * check-output-ignore
39  * check-output-contains: ret\\.32 *\\$0
40  */
41