ID Number: Q63060
6.00 | 6.00
MS-DOS | OS/2
buglist6.00 fixlist6.00a
Summary:
The Microsoft C Compiler version 6.0 produces the following internal
compiler error when the sample program below is compiled for large
(/AL) or huge (/AH) memory model with default optimization:
fatal error C1001: Internal Compiler Error
(compiler file '@(#)newcode.c:1.87', line 604)
Contact Microsoft Product Support Services
Compiling using the /Od option or the #pragma optimize("",off)
statement eliminates the error.
Microsoft has confirmed this to be a problem in C version 6.0. This
problem was corrected in C version 6.0a.
Sample Code
-----------
/* Compile options needed: /AL
*/
#define OFFSET 2
#define NEXTFP(nextfp,fp) \
nextfp = (long) fp & 0xffff0000;\
nextfp = nextfp + * fp + *(fp+1) * 0x100;
static unsigned char * stk_bottom;
static long first_fp;
void main (void)
{}
void chkstkinit()
{
unsigned char stk_top;
static long nextfp;
static unsigned char *fp;
stk_top = 0xaa;
fp = &stk_top + OFFSET;
NEXTFP(nextfp, fp);
stk_bottom = (unsigned char *)nextfp; // The error occurs here
first_fp = *stk_bottom + *(stk_bottom +1) * 0x100;
return;
}
Additional reference words: 6.00 6.00a