C9005000: C1001: regMD.c, Line 3074

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