ID Number: Q76217
6.00 | 6.00
MS-DOS | OS/2
buglist6.00 fixlist6.00a
Summary:
PROBLEM ID: MSM9109002
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 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 reference words: LOCK HANG STRUCT