The ABI for the ARM architecture describes four build attribute values for the size of enumeration types. Currently, LLVM cannot 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 support for emitting the missing build attribute values.
This patch depends on Add Driver support for emitting the missing Tag_ABI_enum_size build attribute values.
My feeling here is that we need to maintain support for the min_enum_size metadata for a while. Our bitcode policy is that it should auto-upgrade for 2 releases.
I'm aware that metadata is normally excluded from this, but this particular metadata, if omitted, will cause link failures. So I think a fallback is needed.