#define __bitwise __attribute__((bitwise)) #define __force __attribute__((force)) typedef long long __bitwise bits; enum r { RZ = (__force bits) 0, RO = (__force bits) 1, RM = (__force bits) -1, }; _Static_assert([typeof(RZ)] == [bits], "RZ"); _Static_assert([typeof(RO)] == [bits], "RO"); _Static_assert([typeof(RM)] == [bits], "RM"); _Static_assert(sizeof(enum r) == sizeof(bits), "bits"); /* * check-name: enum-bitwise */