summaryrefslogtreecommitdiffstats
path: root/binutils-2.19/gas/expr.c
diff options
context:
space:
mode:
Diffstat (limited to 'binutils-2.19/gas/expr.c')
-rw-r--r--binutils-2.19/gas/expr.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/binutils-2.19/gas/expr.c b/binutils-2.19/gas/expr.c
index 285b438..b494a98 100644
--- a/binutils-2.19/gas/expr.c
+++ b/binutils-2.19/gas/expr.c
@@ -1866,16 +1866,27 @@ expr (int rankarg, /* Larger # is higher rank. */
if (retval != rightseg)
{
- if (! SEG_NORMAL (retval))
- {
- if (retval != undefined_section || SEG_NORMAL (rightseg))
- retval = rightseg;
- }
- else if (SEG_NORMAL (rightseg)
+ if (retval == undefined_section)
+ ;
+ else if (rightseg == undefined_section)
+ retval = rightseg;
+ else if (retval == expr_section)
+ ;
+ else if (rightseg == expr_section)
+ retval = rightseg;
+ else if (retval == reg_section)
+ ;
+ else if (rightseg == reg_section)
+ retval = rightseg;
+ else if (rightseg == absolute_section)
+ ;
+ else if (retval == absolute_section)
+ retval = rightseg;
#ifdef DIFF_EXPR_OK
- && op_left != O_subtract
+ else if (op_left == O_subtract)
+ ;
#endif
- )
+ else
as_bad (_("operation combines symbols in different segments"));
}