aboutsummaryrefslogtreecommitdiff
path: root/gas/symbols.c
diff options
context:
space:
mode:
Diffstat (limited to 'gas/symbols.c')
-rw-r--r--gas/symbols.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/gas/symbols.c b/gas/symbols.c
index 9115d7e..66865e0 100644
--- a/gas/symbols.c
+++ b/gas/symbols.c
@@ -1429,7 +1429,16 @@ resolve_symbol_value (symbolS *symp)
case O_gt: left = left > right ? ~ (offsetT) 0 : 0; break;
case O_logical_and: left = left && right; break;
case O_logical_or: left = left || right; break;
- default: abort ();
+
+ case O_illegal:
+ case O_absent:
+ case O_constant:
+ /* See PR 20895 for a reproducer. */
+ as_bad (_("Invalid operation on symbol"));
+ goto exit_dont_set_value;
+
+ default:
+ abort ();
}
final_val += symp->sy_frag->fr_address + left;