target-i386: Use 1UL for bit shift

Fix undefined behavior detected by clang runtime check:

qemu/target-i386/cpu.c:1494:15: runtime error:
left shift of 1 by 31 places cannot be represented in type 'int'

While doing that, add extra parenthesis for clarity.

Backports commit 72370dc1149d7c90d2c2218e0d0658bee23a5bf7 from qemu
This commit is contained in:
Eduardo Habkost 2018-02-16 16:34:39 -05:00 committed by Lioncash
parent feb90cf413
commit 828d48d077
No known key found for this signature in database
GPG Key ID: 4E3C3CC1031BA9C7

View File

@ -1447,7 +1447,7 @@ static void report_unavailable_features(FeatureWord w, uint32_t mask)
int i;
for (i = 0; i < 32; ++i) {
if (1 << i & mask) {
if ((1UL << i) & mask) {
const char *reg = get_register_name_32(f->cpuid_reg);
assert(reg);
fprintf(stderr, "warning: %s doesn't support requested feature: "