diff options
author | Alan Modra <amodra@gmail.com> | 2020-08-31 16:42:42 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2020-08-31 20:28:12 +0930 |
commit | 8659fff005fd09cebaa1af5a76962ec77cce320c (patch) | |
tree | 1a3d449ce016d8ae093d9780a328bb322178ce92 /gas | |
parent | 548c8b2ba71f5c93035028a32a596cca37c9b7cf (diff) | |
download | gdb-8659fff005fd09cebaa1af5a76962ec77cce320c.zip gdb-8659fff005fd09cebaa1af5a76962ec77cce320c.tar.gz gdb-8659fff005fd09cebaa1af5a76962ec77cce320c.tar.bz2 |
PR26497 UBSAN: tc-sh.c:2467 left shift cannot be represented
PR 26497
* config/tc-sh.c (assemble_ppi): Use unsigned variables.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-sh.c | 12 |
2 files changed, 11 insertions, 6 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 0d55433..2265271 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,10 @@ 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 * config/tc-score.c (s3_apply_fix): Use unsigned variables. * config/tc-score7.c (s7_apply_fix): Likewise. diff --git a/gas/config/tc-sh.c b/gas/config/tc-sh.c index e1e509d..ea90522 100644 --- a/gas/config/tc-sh.c +++ b/gas/config/tc-sh.c @@ -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; |