BUG: C1001: Internal Compiler Error: pgoMD2.c, Line 681Last reviewed: July 22, 1997Article ID: Q115526 |
1.00 1.50
WINDOWS
kbtool kbbuglist
The information in this article applies to:
SYMPTOMSCompiling the sample code shown below using the /Ot, /Ob2, or /Gr options causes the optimizing compiler to generate the following error:
fatal error C1001: internal compiler error (compiler file '@(#)pgoMD2.c:1.23', line 681)Compiling the sample code with the switches listed above also causes the compiler to generate the following warning:
warning C4124: __fastcall with stack checking is inefficientHowever, compiling the code with /Gs to turn off stack checking does not avoid the C1001 error.
RESOLUTIONTo avoid the problem, do one of the following:
STATUSMicrosoft has confirmed this to be a bug in the Microsoft products listed above. We are researching this bug and will post new information here in the Microsoft Knowledge Base as it becomes available. This is not a problem in Visual C++, 32-bit Edition.
MORE INFORMATION
Sample Code
/* Compile options needed: /Otb2 /Gr */ #include <stdio.h> int main(void); int fail_count = 0; void fail(int line) { printf("failed line %d\n",line); fail_count++; } void checke (int a, int b) { if (a != b) printf ("Not equal\n"); } typedef int (*func_ptr_elip_arg)(...); typedef int (*func_ptr_uint_arg)(unsigned); int f(unsigned); int g(func_ptr_elip_arg p) { return p(1); } int g(func_ptr_uint_arg p) { return p(2); } int f(unsigned u) { return u * 4; } // Uncomment the following pragma to allow this to compile //#pragma optimize ( "", off ) int main(void) { checke(g((int(*)(...))&f),4); if(!fail_count) printf("passed\n"); return fail_count; } |
Additional reference words: 1.00 1.50 8.00 8.00c
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |