BUG: Based Variable EXTRN Directive Incorrect in ASM, COD FileLast reviewed: July 17, 1997Article ID: Q66773 |
6.00 6.00a 6.00ax 7.00 | 6.00 6.00a | 1.00 1.50
MS-DOS | OS/2 | WINDOWSkbtool kbbuglist The information in this article applies to:
The Microsoft C/C++ Compiler (CL.EXE) included with: - Microsoft C for MS-DOS, versions 6.0, 6.0a, and 6.0ax - Microsoft C for OS/2, versions 6.0, and 6.0a - Microsoft C/C++ for MS-DOS, version 7.0 - Microsoft Visual C++ for Windows, versions 1.0 and 1.5
SYMPTOMSIn an assembly language listing (.ASM file) or in a mixed source code and assembly language listing (.COD file), the EXTRN directive for based variables is not located in the correct section of the listing file. This error also occurs for functions specified in an alloc_text pragma.
RESOLUTIONTo work around this problem, edit the listing file to place the EXTRN directive for a based variable between the SEGMENT and ENDS directives for the segment in which the variable is declared to exist.
STATUSMicrosoft has confirmed this to be a bug in the products listed at the beginning of this article. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.
MORE INFORMATIONTo generate an assembly language listing file with Microsoft C, specify the /Fa compiler option switch. To generate a mixed source code and assembly language listing file, specify the /Fc compiler option switch. The EXTRN directive for a based variable belongs between the SEGMENT and ENDS directives for the segment in which the variable is declared to exist. This allows the Microsoft Macro Assembler (MASM) to generate the correct fixups for references to the variable which, in turn, enables the linker to determine whether the variable is actually defined in the specified segment.
|
Additional reference words: 1.00 1.50 6.00 6.00a 6.00ax 7.00 8.00 8.00c
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |