FIX: Nested Dups in Structure Cause Recursive Loop

ID: Q35113


The information in this article applies to:
  • Microsoft Macro Assembler for MS-DOS, versions 5.0, 5.1, 5.1a
  • Microsoft Macro Assembler for OS/2, versions 5.1, 5.1a


SYMPTOMS

The following code uses nested DUP operators in the initialization of an array of structures. The Microsoft Macro Assembler (MASM) version 5.0, 5.1, and 5.1a will generate a stack overflow.


CAUSE

MASM goes into a recursive loop at the calculation of the size.


RESOLUTION

You can work around this problem by initializing each of the structures instead of using a nested DUP operator. The example below demonstrates this work around.


STATUS

Microsoft has confirmed this to be a problem in MASM versions 5.0, 5.1, and 5.1a. This problem was corrected in MASM version 6.0.


MORE INFORMATION

Sample Code


; Assemble options needed: none

a_struc STRUC
    a DW ?
a_struc ENDS

_DATA SEGMENT 'DATA'
a_var a_struc 4 DUP (<1>, 3 DUP (<0>))
b_var a_struc 4 DUP (<1>, <0>, <0>, <0>)
_DATA ENDS

END 

Additional query words: 5.00 5.10 5.10a buglist5.00 buglist5.10 buglist5.10a fixlist6.00

Keywords :
Version : :5.0,5.1,5.1a
Platform :
Issue type :


Last Reviewed: January 5, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.