Article: Q76217
Product(s): Microsoft Macro Assembler
Version(s): MS-DOS:6.0
Operating System(s):
Keyword(s):
Last Modified: 04-MAY-2001
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Macro Assembler (MASM), version 6.0
-------------------------------------------------------------------------------
SYMPTOMS
========
Nested structures may cause the Microsoft Macro Assembler (MASM) version 6.0 to
hang when one structure contains a field of the type of another structure and it
is initialized. The code below demonstrates the problem more clearly.
RESOLUTION
==========
Pad the initializer to make it the size declared. In the sample code below,
padding the initializer for the member called People to three characters
corrects the problem.
STATUS
======
Microsoft has confirmed this to be a problem in MASM version 6.0. This problem
was corrected in MASM version 6.0a.
MORE INFORMATION
================
In the sample code, notice that the structure member Nme has a length of three
bytes. However, the structure called People initializes its Nme member to 'R',
which is one character instead of three. This produces the problem.
Under MS-DOS, the assembler logo will appear, and the system will hang. Under
OS/2, the following message appears:
The process has stopped.
The software diagnostic code (trap number) is 013.
Sample Code
-----------
; Assemble options needed: /c
.MODEL small
aStruct STRUCT
Nme BYTE 3 DUP (?)
aStruct ENDS
bStruct STRUCT
People aStruct <'R'>
; Replace above line with the following line to work around problem.
;
; People aStruct <'R '> ; 'R' is followed by two spaces
bStruct ENDS
.DATA
Crash bStruct { }
END
Additional query words: LOCK HANG STRUCT buglist6.00 fixlist6.00a
======================================================================
Keywords :
Technology : kbMASMsearch kbAudDeveloper kbMASM600
Version : MS-DOS:6.0
Solution Type : kbfix
=============================================================================