C9008000: C1001: regMD.c, Line 3837

ID Number: Q65328

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:

fatal error C1001: Internal Compiler Error

(compiler file '@(#)regMD.c:1.100', line 3837)

RESOLUTION

The only workarounds in this case are as follows:

1. Do not use a static array for an index.

-or-

2. Do not use register variables for indexing.

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

*/

static int keyList[10];

struct

{

int fdkey[10];

} fsys[30];

int func1(int i)

{

return;

}

void func2(int fd)

{

register j,k;

int kk;

for (k=0;k<j;k++)

{

func1(fsys[fd].fdkey[keyList[k]]);

}

}

Additional reference words: 6.00