aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog3
-rw-r--r--gas/expr.c4
2 files changed, 6 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 0c84cba..c92dd42 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,8 @@
Tue Sep 13 20:05:47 1994 Jeff Law (law@snake.cs.utah.edu)
+ * expr.c (expr): Don't reduce the difference of two symbols in the
+ same frag if the symbols are not in normal sections.
+
* config/obj-som.h (S_SET_OTHER, S_SET_TYPE): Delete a.out crud.
(S_SET_DESC, S_GET_OTHER, S_GET_TYPE, S_GET_DESC): Likewise.
(obj_attach_unwind_info): Do not define. Not needed anymore.
diff --git a/gas/expr.c b/gas/expr.c
index d431d3d..88da7e9 100644
--- a/gas/expr.c
+++ b/gas/expr.c
@@ -991,7 +991,9 @@ expr (rank, resultP)
&& right.X_op == O_symbol
&& resultP->X_op == O_symbol
&& (right.X_add_symbol->sy_frag
- == resultP->X_add_symbol->sy_frag))
+ == resultP->X_add_symbol->sy_frag)
+ && SEG_NORMAL (S_GET_SEGMENT (right.X_add_symbol)))
+
{
resultP->X_add_number += right.X_add_number;
resultP->X_add_number += (S_GET_VALUE (resultP->X_add_symbol)