FIX: C4713: Internal Compiler Error, reg86.c, Line 2934Last reviewed: September 18, 1997Article ID: Q113259 |
|
1.00
WINDOWS
kbtool kbfixlist kbbuglist
The information in this article applies to:
SYMPTOMSThe compiler generates the following internal compiler error message when the sample program below is compiled with /Oe or /Ox:
warning C4713: func: internal compiler error; restarting
(compiler file '@(#)reg86.c:1.26', line 2934)
The internal compiler error is triggered by using the global register
allocation optimization (/Oe). Note that global register allocation is
included with the /Ox compiler option.
RESOLUTIONThe C4713 message is just a warning. The compiler realizes a problem has occurred due to the global register allocation optimization and restarts the compile without the optimization. There are two ways to eliminate this warning message:
STATUSMicrosoft has confirmed this to be a problem in the Microsoft products listed above. This problem was corrected in Visual C++ version 1.5.
Sample Code
/* Compile options needed: /c /f- /Oe */ #include <ctype.h>typedef struct _table {
char * pcItem1;
char * pcItem2;
char * pcItem3;
int nItem4;
} * PTABLE;
static int nStatic;
// Uncomment for workaround:
// #pragma optimize ("e", off)
int func (PTABLE ptParam)
{
for (;;)
{
if (nStatic == '/')
{
ptParam->nItem4 = 2;
ptParam->pcItem3 = ptParam->pcItem2;
return 7;
}
if (nStatic == '\\')
{
nStatic = (++(ptParam->pcItem2) < ptParam->pcItem1
? *ptParam->pcItem2
: -1);
}
}
}
// Uncomment for workaround:
// #pragma optimize ("", on)
|
Additional reference words: 8.00 1.00
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |