forked from len0rd/rockbox
Fix undefined behavior that blocks compiling with UBSan
Left shifts are not defined in C if they would cause signed overflow, so these expressions get instrumented, which makes them unusable as switch values and triggers compile errors when compiling with UBSan. Change-Id: I0588d4be1e00ba1cfde0eac119ead368b20d10c9
This commit is contained in:
parent
c6df8cc4f7
commit
fca7b8e2ff
2 changed files with 3 additions and 2 deletions
|
@ -38,7 +38,7 @@
|
|||
/* make sure SYS_EVENT_CLS_BITS has enough range */
|
||||
|
||||
/* Bit 31->|S|c...c|i...i| */
|
||||
#define SYS_EVENT ((long)(int)(1 << 31))
|
||||
#define SYS_EVENT ((long)(int)(1u << 31))
|
||||
#define SYS_EVENT_CLS_BITS (3)
|
||||
#define SYS_EVENT_CLS_SHIFT (31-SYS_EVENT_CLS_BITS)
|
||||
#define SYS_EVENT_CLS_MASK (((1l << SYS_EVENT_CLS_BITS)-1) << SYS_EVENT_SHIFT)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue