The ABI for the ARM architecture describes four build attribute values for the size of enumeration types. Currently, Clang cannot instruct LLVM to emit the value 0 (use of enums is prohibited) and 3 (every enumeration visible across an ABI-complying interface contains a value needing 32 bits to encode). This patch adds the Driver flags '-fno-enums' and '-fabi-enums' to indicate the missing values. The build attribute values are passed to LLVM via metadata in the IR.
This patch depends on Emit the missing Tag_ABI_enum_size build attribute values.
Isn't ABIEnums 4? Shouldn't this be:
Is it even valid to have ABIEnums && ShortEnums at the same time?