From 79df79434d41d1d2645629f9fc399b5a705ba59a Mon Sep 17 00:00:00 2001 From: Eduardo Habkost Date: Tue, 13 Feb 2018 08:17:07 -0500 Subject: [PATCH] target-i386: Fix signedness of MSR_IA32_APICBASE_BASE Existing definition triggers the following when using clang -fsanitize=undefined: hw/intc/apic_common.c:314:55: runtime error: left shift of 1048575 by 12 places cannot be represented in type 'int' Fix it so we won't try to shift a 1 to the sign bit of a signed integer. Backports commit 458cf469f4a1cb520b07092f5537c5a6d2389d23 from qemu --- qemu/target-i386/cpu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qemu/target-i386/cpu.h b/qemu/target-i386/cpu.h index 2f8acf97..15b9869d 100644 --- a/qemu/target-i386/cpu.h +++ b/qemu/target-i386/cpu.h @@ -304,7 +304,7 @@ #define MSR_IA32_APICBASE 0x1b #define MSR_IA32_APICBASE_BSP (1<<8) #define MSR_IA32_APICBASE_ENABLE (1<<11) -#define MSR_IA32_APICBASE_BASE (0xfffff<<12) +#define MSR_IA32_APICBASE_BASE (0xfffffU<<12) #define MSR_IA32_FEATURE_CONTROL 0x0000003a #define MSR_TSC_ADJUST 0x0000003b #define MSR_IA32_TSCDEADLINE 0x6e0