[binutils-gdb] ubsan: gas resolve_symbol_value
Alan Modra
amodra@sourceware.org
Sun Jul 6 11:06:36 GMT 2025
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=35842f370e07b64a6ae332fdaaa0b5e795efe5a7
commit 35842f370e07b64a6ae332fdaaa0b5e795efe5a7
Author: Alan Modra <amodra@gmail.com>
Date: Sat Jul 5 10:55:47 2025 +0930
ubsan: gas resolve_symbol_value
Avoid signed overflow when resolving constant +/- constant.
Diff:
---
gas/symbols.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gas/symbols.c b/gas/symbols.c
index 02ea741bde2..6a4dea88b8f 100644
--- a/gas/symbols.c
+++ b/gas/symbols.c
@@ -1729,8 +1729,8 @@ resolve_symbol_value (symbolS *symp)
case O_bit_or_not: left |= ~right; break;
case O_bit_exclusive_or: left ^= right; break;
case O_bit_and: left &= right; break;
- case O_add: left += right; break;
- case O_subtract: left -= right; break;
+ case O_add: left += (valueT) right; break;
+ case O_subtract: left -= (valueT) right; break;
case O_eq:
case O_ne:
left = (left == right && seg_left == seg_right
More information about the Binutils-cvs
mailing list