aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation/enum-bitwise-mixed.c
blob: 07d77176c64fa858793a2f61c670c2191aab7864 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#define __bitwise __attribute__((bitwise))
#define __force   __attribute__((force))

typedef long long __bitwise bits;

enum a {
	AR = (__force bits) 0,
	AP = 0,
	AS = (__force bits) 1,
	AQ = 1,
};
_Static_assert(sizeof(AP) == sizeof(int), "is bad?");

enum b {
	BP = 0,
	BR = (__force bits) 0,
	BQ = 1,
	BS = (__force bits) 1,
};
_Static_assert(sizeof(BP) == sizeof(int), "is bad?");

/*
 * check-name: enum-bitwise-mixed
 *
 * check-error-start
enum-bitwise-mixed.c:8:14: warning: mixed bitwiseness
enum-bitwise-mixed.c:16:15: warning: mixed bitwiseness
 * check-error-end
 */