When compiling as C targeting the MS ABI, but with -fno-ms-compatibility, an enumerator initializer that is not representable as an int is treated as an error. This is correct according to the C standard, but Clang already treats it as an extension both in -fms-compatibility mode and when compiling as C for non-MS ABI targets. It seemed odd that it would be treated as a hard error only in this one particular configuration, so I relaxed it to be an extension when targeting the MS ABI, regardless of MS compatibility mode.
There are dozens of occurrences of this issue in Windows SDK headers. By treating it as an extension, Clang users can include <windows.h> in a C program without having to use -fms-compatibility.
I would remove the getLangOpts().MSVCCompat.