IBM zSystems: Fix left-shifting negative PCRel32 values (PR gas/29152)
authorIlya Leoshkevich <iii@linux.ibm.com>
Mon, 16 May 2022 19:58:55 +0000 (21:58 +0200)
committerAndreas Krebbel <krebbel@linux.ibm.com>
Mon, 16 May 2022 20:00:17 +0000 (22:00 +0200)
commit973773de93a1af858e391ab413c47323b0869012
tree05d79c1edaf57c6cea0c35afc37f914eb66d97ba
parent187075ebbc0cba7b58685c7214028e791b5af844
IBM zSystems: Fix left-shifting negative PCRel32 values (PR gas/29152)

s390_insert_operand ()'s val, min and max are encoded PCRel32 values
and need to be left-shifted by 1 before being shown to the user.
Left-shifting negative values is undefined behavior in C, but the
current code does not try to prevent it, causing UBSan to complain.

Fix by casting the values to their unsigned equivalents before
shifting.
gas/config/tc-s390.c