diff options
author | H. Peter Anvin <hpa@zytor.com> | 2009-07-16 22:32:33 -0400 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2009-07-16 22:35:25 -0400 |
commit | 8a962b3efdc146688075c1c6e36b6bad7597d1c2 (patch) | |
tree | 333cffbce1ee6e4f385aeebcd7b811c1e73126d9 | |
parent | e5b9d2dac01791ad870c003f13975615ae82db96 (diff) | |
download | nasm-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.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -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; } |