sim: sh: avoid left shifting negative values
Checks
Context |
Check |
Description |
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gdb_build--master-arm |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gdb_check--master-arm |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gdb_check--master-aarch64 |
success
|
Testing passed
|
Commit Message
We just want to create a bitmask here, so cast the mask to unsigned
to avoid left shifting a negative value which is undefined behavior.
---
sim/sh/gencode.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
@@ -2350,7 +2350,7 @@ static op ppi_tab[] =
" res = 31;",
"do",
" {",
- " if (Sx & ~0 << i)",
+ " if (Sx & ((unsigned)~0 << i))",
" {",
" res -= i;",
" Sx >>= i;",
@@ -2373,7 +2373,7 @@ static op ppi_tab[] =
"res = 31;",
"do",
" {",
- " if (Sy & ~0 << i)",
+ " if (Sy & ((unsigned)~0 << i))",
" {",
" res -= i;",
" Sy >>= i;",