summaryrefslogtreecommitdiff
path: root/libyasm
diff options
context:
space:
mode:
authorPeter Johnson <peter@tortall.net>2008-04-14 01:48:02 +0000
committerPeter Johnson <peter@tortall.net>2008-04-14 01:48:02 +0000
commit2d36cf72ae9da8b3f205308b79e982dc74fbfcb3 (patch)
tree7ad9147099cd75fc7565075bae8ae8895a942eb8 /libyasm
parent180d18bc11de5be247147ec2c868706652f9be9b (diff)
downloadyasm-2d36cf72ae9da8b3f205308b79e982dc74fbfcb3.tar.gz
Allow {extern symbol}-{symbol in same segment} transformation.
This was earlier limited to local symbols. Reported by: Dave Lee <davelee.com@gmail.com> svn path=/trunk/yasm/; revision=2064
Diffstat (limited to 'libyasm')
-rw-r--r--libyasm/value.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libyasm/value.c b/libyasm/value.c
index a34be634..180bf6af 100644
--- a/libyasm/value.c
+++ b/libyasm/value.c
@@ -276,8 +276,8 @@ value_finalize_scan(yasm_value *value, yasm_expr *e,
&& sect2 == yasm_bc_get_section(expr_precbc)))) {
for (j=0; j<e->numterms; j++) {
if (e->terms[j].type == YASM_EXPR_SYM
- && yasm_symrec_get_label(e->terms[j].data.sym,
- &precbc2)
+ && !yasm_symrec_get_equ(e->terms[j].data.sym)
+ && !yasm_symrec_is_special(e->terms[j].data.sym)
&& (used & (1<<j)) == 0) {
/* Mark as used */
used |= 1<<j;