C1001: Internal Compiler Error: newcode.c, Line 604

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