C9008000: C1001: regMD.c, Line 4634

ID Number: Q65305

6.00 6.00a | 6.00 6.00a

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 /Oel:

fatal error C1001: Internal Compiler Error

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

Contact Microsoft Product Support Services

RESOLUTION

The following are possible workarounds:

1. Do the incrementing of the index of the array outside the

printf() using a temporary variable, and use that variable as

the index inside the printf().

2. Compile without the /Oe or /Ol compile option by NOT

including the option on the compile line or using the optimize

or loop_opt pragma.

3. Compile with the /qc (quick compile) option.

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: /Oel

*/

#include <stdio.h>

extern FILE *ftable;

extern int nrules;

extern short *rrhs;

output_rule_data()

{

int i;

int j,k;

for (i=1;i<nrules;i++)

{

k = i+1; // Use k for i+1 in the next line as a workaround

fprintf(ftable,"%6d",rrhs[i+1] - rrhs[i] - 1);

}

}

Additional reference words: 6.00 6.00a