summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2009-07-16 22:32:33 -0400
committerH. Peter Anvin <hpa@zytor.com>2009-07-16 22:35:25 -0400
commit8a962b3efdc146688075c1c6e36b6bad7597d1c2 (patch)
tree333cffbce1ee6e4f385aeebcd7b811c1e73126d9
parente5b9d2dac01791ad870c003f13975615ae82db96 (diff)
downloadnasm-8a962b3efdc146688075c1c6e36b6bad7597d1c2.tar.gz
nasm-8a962b3efdc146688075c1c6e36b6bad7597d1c2.tar.bz2
nasm-8a962b3efdc146688075c1c6e36b6bad7597d1c2.zip
BR 2822263: don't re-invoke ofmt->symdef() in pass2 unless "special"
Before checkin aeb0e0e9f1e7e9b32a8f17f2259311f6e9207aa6 we would only invoke ofmt->symdef() for a common variable during pass 2 if that variable had "special" in the declaration. That checkin unintentionally changed that behavior. That doesn't mean that the pre-existing behavior is right, but this should at least fix the resulting regressions. This really warrants more investigation. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r--nasm.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/nasm.c b/nasm.c
index a938aaa..8c7e271 100644
--- a/nasm.c
+++ b/nasm.c
@@ -1368,7 +1368,8 @@ static void assemble_file(char *fname, StrList **depend_ptr)
define_common(value, seg_alloc(), size,
special, ofmt, report_error);
} else if (pass0 == 2) {
- ofmt->symdef(value, 0L, 0L, 3, special);
+ if (special)
+ ofmt->symdef(value, 0L, 0L, 3, special);
}
break;
}