ID Number: Q82288
6.00 6.00a 6.00ax 7.00 | 6.00 6.00a
MS-DOS | OS/2
buglist6.00 buglist6.00a buglist6.00ax buglist7.00
Summary:
PROBLEM ID: C9203005
SYMPTOMS
In the Microsoft C Compiler versions 6.0, 6.0a, and 6.0ax, and the
C/C++ version 7.0 compiler the dollar sign symbol ($) when used as
the current location counter in inline assembly does not generate
correct values under some circumstances. The following source produces
bad code when compiled:
_asm LOOP $
Instead of looping back to the current location as it should, this
statement jumps to an unknown location in memory.
RESOLUTION
If the dollar symbol is causing unpredictable results in your
program, using a label instead at the intended location will resolve
the problem. The following source will resolve the problem listed
above:
_asm label01: LOOP label01
Although it is an infinite loop, the above line illustrates the
principles involved.
Also, compiling with the /qc (quick compile) option will cause the
correct code to be generated.
STATUS
Microsoft has confirmed this to be a problem in Microsoft C version
6.0, 6.0a, 6.0ax, and C/C++ version 7.0. We are researching this problem
and will post new information here as it becomes available.
Additional reference words: 6.00 6.00a 6.00ax 7.00