Article: Q61973
Product(s): See article
Version(s): 6.00 | 6.00
Operating System(s): MS-DOS | OS/2
Keyword(s): ENDUSER | buglist6.00 | mspl13_c
Last Modified: 29-MAY-1990
The sample code shown below generates the following internal compiler
error when compiled with the /qc compiler option, in all memory
models:
foo.c(10) : fatal error C1001: Internal Compiler Error
(compiler file 'gencode.c', line 437)
Contact Microsoft Product Support Services
Sample Code
-----------
#include <stdio.h>
#include <stddef.h>
void main (void)
{
char *p1, *p2;
double temp;
p1 = p2 = NULL;
temp = 1 + (double)(p2-p1); // This line causes the error
}
The following is a suggested workaround:
Simplify the expression by assigning (p2-p1) to a temporary variable.
For example:
ptrdiff_t c;
c = p2-p1;
temp = 1 + (double)c;
Note: The error message shown above also occurs when casting "a" to a
float.