diff options
author | Simon Ser <simon.ser@intel.com> | 2019-03-21 12:26:56 +0200 |
---|---|---|
committer | Petri Latvala <petri.latvala@intel.com> | 2019-04-16 13:36:51 +0300 |
commit | cc9a60c029432b5843724e4f2c57f9f815f7adbb (patch) | |
tree | b0df782f7cfcc6548748ec14f9ad522c93829580 | |
parent | 504343f541a4680e9d6b591951a89eb885143a97 (diff) |
lib/intel_reg: fix shift undefined behaviour
1<<31 (same as 2<<30) is undefined behaviour in C. When compiling with
GCC and UBSan, it gives this error:
../tools/intel_reg_decode.c: In function ‘ivb_debug_port’:
../tools/intel_reg_decode.c:398:3: error: case label does not reduce to an integer constant
case PORT_DBG_DRRS_HW_STATE_HIGH:
^~~~
This happens because 1<<31 isn't representable as a signed int. Instead,
use an unsigned int.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
-rw-r--r-- | lib/intel_reg.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/intel_reg.h b/lib/intel_reg.h index f85fb742..069440cb 100644 --- a/lib/intel_reg.h +++ b/lib/intel_reg.h @@ -3383,7 +3383,7 @@ typedef enum { #define PORT_DBG 0x42308 #define PORT_DBG_DRRS_HW_STATE_OFF (0<<30) #define PORT_DBG_DRRS_HW_STATE_LOW (1<<30) -#define PORT_DBG_DRRS_HW_STATE_HIGH (2<<30) +#define PORT_DBG_DRRS_HW_STATE_HIGH (2U<<30) /* RC6 residence counters */ |