This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

ubsan: v850: left shift cannot be represented in type 'int'


Another 1 << 31 complaint.

	* v850-dis.c (disassemble): Avoid signed overflow.  Don't use
	long vars when unsigned int will do.

diff --git a/opcodes/v850-dis.c b/opcodes/v850-dis.c
index 45e6c65d83..df2c2a5d39 100644
--- a/opcodes/v850-dis.c
+++ b/opcodes/v850-dis.c
@@ -499,7 +499,7 @@ disassemble (bfd_vma memaddr,
 						     0,  0, 0, 0, 0, 31, 29, 28, 23, 22, 21, 20, 27, 26, 25, 24 };
 		    int *regs;
 		    int i;
-		    unsigned long int mask = 0;
+		    unsigned int mask = 0;
 		    int pc = 0;
 
 		    switch (operand->shift)
@@ -514,12 +514,12 @@ disassemble (bfd_vma memaddr,
 
 		    for (i = 0; i < 32; i++)
 		      {
-			if (value & (1 << i))
+			if (value & (1u << i))
 			  {
 			    switch (regs[ i ])
 			      {
 			      default:
-				mask |= (1 << regs[ i ]);
+				mask |= (1u << regs[ i ]);
 				break;
 			      case 0:
 				/* xgettext:c-format */
@@ -543,10 +543,10 @@ disassemble (bfd_vma memaddr,
 			    int shown_one = 0;
 
 			    for (bit = 0; bit < 32; bit++)
-			      if (mask & (1 << bit))
+			      if (mask & (1u << bit))
 				{
-				  unsigned long int first = bit;
-				  unsigned long int last;
+				  unsigned int first = bit;
+				  unsigned int last;
 
 				  if (shown_one)
 				    info->fprintf_func (info->stream, ", ");
@@ -556,7 +556,7 @@ disassemble (bfd_vma memaddr,
 				  info->fprintf_func (info->stream, "%s", get_v850_reg_name (first));
 
 				  for (bit++; bit < 32; bit++)
-				    if ((mask & (1 << bit)) == 0)
+				    if ((mask & (1u << bit)) == 0)
 				      break;
 
 				  last = bit;

-- 
Alan Modra
Australia Development Lab, IBM


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]