| #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 |
| */ |