Skip to content

Valid test case with global of $-prefixed label produces "error: identifier expected after global," #218

Description

@ecm-pushbx

Recent NASM versions give multiple errors assembling display.nas of my MS-DOS v4.01 format.exe port, like "error: identifier expected after global, got ..." where the "got" string appears to be a valid identifier. An older NASM version works fine with the same sources.

The NASM commit IDs in the following test run are specified in the directory names:

test$ NASM=~/proj/nasm-03490692b0082fe16a1936a5774f4326a55075e6/nasm ./mak.sh; ls -lgG *.obj
versiona.mac:18: warning: out: ... for DOS Version 4.00 ... [-w+user]
display.nas:20: warning: out: ... Including message Class A [-w+user]
format.cla:6: ... from macro `MSG_SERVICES' defined here
display.nas:20: warning: out: ... Including message Class B [-w+user]
format.clb:6: ... from macro `MSG_SERVICES' defined here
display.nas:20: warning: out: ... Including message Class C [-w+user]
format.clc:6: ... from macro `MSG_SERVICES' defined here
display.nas:20: warning: out: ... Including message Class 1 [-w+user]
format.cl1:6: ... from macro `MSG_SERVICES' defined here
display.nas:20: warning: out: ... Including message Class 2 [-w+user]
format.cl2:6: ... from macro `MSG_SERVICES' defined here
-rw-r--r-- 1 4919 Mar 29 13:38 display.obj
test$ NASM=~/proj/nasm-ac0429fb74e544c78c0e1556483b0196462dad18/nasm ./mak.sh; ls -lgG *.obj
display.nas:20: error: identifier expected after global, got `M_CLS_1'
format.cla:4: ... from macro `MSG_SERVICES' defined here
display.nas:20: error: identifier expected after global, got `M_CLS_2'
format.clb:4: ... from macro `MSG_SERVICES' defined here
display.nas:20: error: identifier expected after global, got `M_CLS_3'
format.clc:4: ... from macro `MSG_SERVICES' defined here
display.nas:20: error: identifier expected after global, got `M_MSGSERV_1'
format.cl1:4: ... from macro `MSG_SERVICES' defined here
display.nas:20: error: identifier expected after global, got `M_MSGSERV_2'
format.cl2:4: ... from macro `MSG_SERVICES' defined here
ls: cannot access '*.obj': No such file or directory
test$ NASM=~/proj/nasm-1e494b46c1c4d1a22e28daa82c2b507fc21fa954/nasm ./mak.sh; ls -lgG *.obj
display.nas:20: error: identifier expected after global, got `M_CLS_1'
format.cla:4: ... from macro `MSG_SERVICES' defined here
display.nas:20: error: identifier expected after global, got `M_CLS_2'
format.clb:4: ... from macro `MSG_SERVICES' defined here
display.nas:20: error: identifier expected after global, got `M_CLS_3'
format.clc:4: ... from macro `MSG_SERVICES' defined here
display.nas:20: error: identifier expected after global, got `M_MSGSERV_1'
format.cl1:4: ... from macro `MSG_SERVICES' defined here
display.nas:20: error: identifier expected after global, got `M_MSGSERV_2'
format.cl2:4: ... from macro `MSG_SERVICES' defined here
ls: cannot access '*.obj': No such file or directory
test$ NASM=~/proj/nasm-755593b12844a3189dcab7faf3e9158da0877021/nasm ./mak.sh; ls -lgG *.obj
display.nas:20: error: identifier expected after global, got `M_CLS_1'
format.cla:4: ... from macro `MSG_SERVICES' defined here
display.nas:20: error: identifier expected after global, got `M_CLS_2'
format.clb:4: ... from macro `MSG_SERVICES' defined here
display.nas:20: error: identifier expected after global, got `M_CLS_3'
format.clc:4: ... from macro `MSG_SERVICES' defined here
display.nas:20: error: identifier expected after global, got `M_MSGSERV_1'
format.cl1:4: ... from macro `MSG_SERVICES' defined here
display.nas:20: error: identifier expected after global, got `M_MSGSERV_2'
format.cl2:4: ... from macro `MSG_SERVICES' defined here
ls: cannot access '*.obj': No such file or directory
test$

0349069 works.

ac0429f (fixed revision for the #206 issue) fails, as do 1e494b4 (latest git) and 755593b (my current "good" revision).

The test case is available in https://pushbx.org/ecm/test/20260329/ as well as https://hg.pushbx.org/ecm/testnas1

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions