FIX: C4713: Internal Compiler Error, reg86.c, Line 2934 |
Q113259
1.00 WINDOWS kbtool kbfixlist kbbuglistThe compiler generates the following internal compiler error message when the sample program below is compiled with /Oe or /Ox:
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.warning C4713: func: internal compiler error; restarting (compiler file '@(#)reg86.c:1.26', line 2934)
The 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:
Microsoft has confirmed this to be a problem in the Microsoft products
listed above. This problem was corrected in Visual C++ version 1.5.
/* 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 query words: 8.00 1.00
Keywords : kb16bitonly kbCompiler
Issue type : kbbug
Technology : kbVCsearch kbAudDeveloper kbCVCComp
|
Last Reviewed: February 26, 2001 © 2001 Microsoft Corporation. All rights reserved. Terms of Use. |