PR26497 UBSAN: tc-sh.c:2467 left shift cannot be represented

PR 26497
	* config/tc-sh.c (assemble_ppi): Use unsigned variables.
This commit is contained in:
Alan Modra 2020-08-31 16:42:42 +09:30
parent 548c8b2ba7
commit 8659fff005
2 changed files with 11 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2020-08-31 Alan Modra <amodra@gmail.com>
PR 26497
* config/tc-sh.c (assemble_ppi): Use unsigned variables.
2020-08-31 Alan Modra <amodra@gmail.com>
PR 26495

View File

@ -2205,12 +2205,12 @@ find_cooked_opcode (char **str_p)
static unsigned int
assemble_ppi (char *op_end, sh_opcode_info *opcode)
{
int movx = 0;
int movy = 0;
int cond = 0;
int field_b = 0;
unsigned int movx = 0;
unsigned int movy = 0;
unsigned int cond = 0;
unsigned int field_b = 0;
char *output;
int move_code;
unsigned int move_code;
unsigned int size;
for (;;)
@ -2464,7 +2464,7 @@ assemble_ppi (char *op_end, sh_opcode_info *opcode)
if (field_b)
{
/* Parallel processing insn. */
unsigned long ppi_code = (movx | movy | 0xf800) << 16 | field_b;
unsigned int ppi_code = (movx | movy | 0xf800) << 16 | field_b;
output = frag_more (4);
size = 4;