ubsan: expr.c:1725,1741 signed integer overflow
Alan Modra
amodra@gmail.com
Wed Sep 2 08:42:56 GMT 2020
* expr.c (add_to_result, subtract_from_result): Use unsigned
addition and subtraction.
diff --git a/gas/expr.c b/gas/expr.c
index da4fbcf8cd..6f74de786d 100644
--- a/gas/expr.c
+++ b/gas/expr.c
@@ -1722,7 +1722,7 @@ add_to_result (expressionS *resultP, offsetT amount, int rhs_highbit)
valueT ures = resultP->X_add_number;
valueT uamount = amount;
- resultP->X_add_number += amount;
+ resultP->X_add_number += uamount;
resultP->X_extrabit ^= rhs_highbit;
@@ -1738,7 +1738,7 @@ subtract_from_result (expressionS *resultP, offsetT amount, int rhs_highbit)
valueT ures = resultP->X_add_number;
valueT uamount = amount;
- resultP->X_add_number -= amount;
+ resultP->X_add_number -= uamount;
resultP->X_extrabit ^= rhs_highbit;
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list