Knowledge Base |

# BUG: Invalid A2006 Error Generated by MASM 6.x

Article ID: 107500

Article Last Modified on 10/14/2003

APPLIES TO

- Microsoft Macro Assembler 6.0 Standard Edition
- Microsoft Macro Assembler 6.0a
- Microsoft Macro Assembler 6.0b
- Microsoft Macro Assembler 6.1 Standard Edition
- Microsoft Macro Assembler 6.1a
- Microsoft Macro Assembler 6.11 Standard Edition

This article was previously published under Q107500

## SYMPTOMS

When you attempt to assemble the sample code below, the Microsoft Macro Assembler (MASM) fails and reports the following error for the two lines with "mov" instructions:
error A2006: undefined symbol

## RESOLUTION

To work around the problem, do one of the following,

- Simplify the expression. If you uncomment the lines in the sample code, and delete the original instructions, the code will assemble without errors. -or-
- Assemble with the /Zm option (or run MASM.EXE instead of ML.EXE). -or-
- Use the OPTION OLDSTRUCTS directive to have the assembler treat structure members the same as in MASM 5.1.

## STATUS

Microsoft has confirmed this to be a problem in MASM versions 6.0x, 6.1, 6.1a, and 6.11. 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: none

            .MODEL  small

    STEST   STRUCT
      f1    BYTE    ?
      f2    BYTE    ?
    STEST   ENDS

            .CODE
            mov     al, SIZEOF STEST.f1 + SIZEOF STEST.f2
            mov     al, LENGTHOF STEST.f1 + LENGTHOF STEST.f2
    ;
    ; Uncomment the lines below and delete the two lines above to avoid
    ; the A2006 error
    ;
    ;       temp = SIZEOF STEST.f1
    ;       mov    al, temp + SIZEOF STEST.f2
    ;       temp = LENGTHOF STEST.f1
    ;       mov    al, temp + LENGTHOF STEST.f2

            END

Additional query words: buglist6.00 buglist6.00a 6.00 6.00a 6.00b 6.10 6.10a 6.11 buglist6.00b buglist6.10 buglist6.10a buglist6.11

Keywords: KB107500