From: Alan Modra Date: Sat, 5 Jul 2025 01:25:47 +0000 (+0930) Subject: ubsan: gas resolve_symbol_value X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=35842f370e07b64a6ae332fdaaa0b5e795efe5a7;p=thirdparty%2Fbinutils-gdb.git ubsan: gas resolve_symbol_value Avoid signed overflow when resolving constant +/- constant. --- 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