ID Number: Q62309
6.00 | 6.00
MS-DOS | OS/2
buglist6.00 fixlist6.00a
Summary:
SYMPTOMS
The Microsoft C Compiler version 6.0 produces the following internal
compiler error when the sample program below is compiled with default
optimization:
file.c(11) : fatal error C1001: Internal Compiler Error
(compiler file '@(#)regMD.c:1.100', line 3074)
Contact Microsoft Product Support Services
RESOLUTION
The error may be worked around, as seen in the sample code, by placing
parentheses around the subexpression involving Addr.
STATUS
Microsoft has confirmed this to be a problem in C version 6.0. This
problem was corrected in C version 6.0a.
More Information:
Sample Code
-----------
/* Compile options needed: none
*/
void test ( long Addr1, long Addr2 )
{
/* This expression compiles. */
if( ((Addr1 & 0x0FFF0000) - (Addr2 & 0x0FFFF0000)) >= 0 );
/* Removing parens around Addr1 & 0x0FFF0000 causes ICE */
if( (Addr1 & 0x0FFF0000 - (Addr2 & 0x0FFFF0000)) >= 0 );
}
Additional reference words: 6.00