From 35842f370e07b64a6ae332fdaaa0b5e795efe5a7 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Sat, 5 Jul 2025 10:55:47 +0930 Subject: [PATCH] ubsan: gas resolve_symbol_value Avoid signed overflow when resolving constant +/- constant. --- 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 -- 2.47.2