BUG: A2008 When Angle Brackets Missing on FOR Argument List (113420)
The information in this article applies to:
- Microsoft Macro Assembler (MASM) 6.0
- Microsoft Macro Assembler (MASM) 6.0a
- Microsoft Macro Assembler (MASM) 6.0b
- Microsoft Macro Assembler (MASM) 6.1
- Microsoft Macro Assembler (MASM) 6.1a
- Microsoft Macro Assembler (MASM) 6.11
This article was previously published under Q113420 SYMPTOMS
Angle brackets ("<>") are required for the argument list of a FOR
statement. If the angle brackets are missing from the argument list of a
FOR statement in a macro, no listing file will be created and errors A1008
and A2008 will be generated. The sample given at the end of this article
generates the following errors:
test.asm(17): error A2008: syntax error : integer
numargs(3): Macro Called From
test.asm(17): Main Line Code
test.asm(17): fatal error A1008: unmatched macro nesting
numargs(5): Macro Called From
test.asm(17): Main Line Code
CAUSE
Because A1008 is a fatal error, no listing file is created.
RESOLUTION
The error messages indicate where the error occurs, but may be difficult to
interpret. The first message line indicates that an A2008 error occurred at
line 17 of the program (see the sample below). The second message shows
that the actual error is on line 3 of the numargs macro. The error can be
located and eliminated by finding this line and adding the angle brackets
around varg (shown as a commented line in the sample).
STATUS
Microsoft has confirmed this to be a problem in MASM versions 6.x. We are
researching this problem and will post new information here in the
Microsoft Knowledge Base as it becomes available.
Sample Code
; Assemble options needed: /c /Fl /Sa
.MODEL small
numargs MACRO varg:VARARG
mov ax,0
; Following line should be FOR val, <varg>
FOR val, varg
inc ax
ENDM
ENDM
.STACK
.DATA
.CODE
.STARTUP
numargs 1,1,1
.EXIT
END
Modification Type: | Minor | Last Reviewed: | 10/14/2003 |
---|
Keywords: | KB113420 |
---|
|