Article: Q120068
Product(s): Microsoft Macro Assembler
Version(s): 6.1,6.11
Operating System(s):
Keyword(s):
Last Modified: 04-MAY-2001
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Macro Assembler (MASM), versions 6.1, 6.11
-------------------------------------------------------------------------------
SYMPTOMS
========
The H2INC utility does not appear to handle #undef correctly. For example, the
following code fragment causes "error A2005: symbol redefinition: test2" to
appear:
#define test2 2
#if test2 == 2
#undef test2
#define test2 3
#endif
CAUSE
=====
This behavior is by design.
The following .INC file is generated for the fragment listed in the "SYMPTOMS"
section:
option expr32
option casemap:none
; Begin of file xxx.h
test2 EQU 2t
test2 EQU 3t
; End of file xxx.h
NOTE: In MASM, constants defined with EQU cannot be redefined.
RESOLUTION
==========
A #define can define "text equates" as well as "numeric equates." In the case of
numeric constants, use an editor to change the "EQU" to a "=".
Additional query words: 6.10 6.11
======================================================================
Keywords :
Technology : kbMASMsearch kbAudDeveloper kbMASM610 kbMASM611
Version : :6.1,6.11
=============================================================================