[Nasm-bugs] [Bug 3392729] New: Nasm allows symbol to be declared global (exported) even if not present
noreply-nasm at dev.nasm.us
noreply-nasm at dev.nasm.us
Sun Dec 20 04:33:41 PST 2020
https://bugzilla.nasm.us/show_bug.cgi?id=3392729
Bug ID: 3392729
Summary: Nasm allows symbol to be declared global (exported)
even if not present
Product: NASM
Version: 2.14.xx
Hardware: PC
OS: Linux
Status: OPEN
Severity: normal
Priority: Medium
Component: Assembler
Assignee: nobody at nasm.us
Reporter: james.harris.1 at gmail.com
CC: chang.seok.bae at intel.com, gorcunov at gmail.com,
hpa at zytor.com, nasm-bugs at nasm.us
Obtained from: From OS distribution
Nasm 2.14 allows a symbol to be declared global (i.e. to be exported) even if
it is not in the source file.
Sample source f2.nasm:
extern symb
global symb
mov eax, [symb]
Command nasm -f elf f2.nasm doesn't report any error but AISI could/should
report both of
1. Symbol declared as global is not present.
2. A symbol cannot be both extern and global.
This is not just an inconvenience but appears to have led to a serious failing
where some machine code called a different routine from that specified in the
source. See the following link for details.
https://groups.google.com/g/comp.lang.asm.x86/c/I-ngqcVMQKU/m/D0dzEQqeBQAJ
It's possible a programmer might want extern before global if a file of externs
is %included into multiple sources so a warning may be enough for that case but
AFAICS declaring as global a missing symbol should be reported as an error.
--
You are receiving this mail because:
You are watching all bug changes.
You are on the CC list for the bug.
More information about the Nasm-bugs
mailing list