FIX: C4713: reg86.c, line 4479, 4600Last reviewed: September 18, 1997Article ID: Q115535 |
|
7.00 | 1.00
MS-DOS | 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 /Oez or /Oxz.
warning C4713: func: internal compiler error; restarting
(compiler file '@(#)reg86.c:1.26', line 4600)
warning C4713: func: INTERNAL COMPILER ERROR; restarting
(compiler file '@(#)reg86.c:1.26', line 4479)
Contact Microsoft Product Support Services
The internal compiler error is triggered when you use the global register
allocation optimization (/Oe) with maximum loop optimization (/Oz).
NOTE: Global register allocation is included with the /Ox compiler option.
RESOLUTIONThe C4713 message is just a warning. The compiler realizes a problem has occurred because of the global register allocation optimization and restarts the compile without the optimization. To avoid the message, either:
STATUSMicrosoft has confirmed this to be a problem in the Microsoft products listed above. This is not a problem in Visual C++, 32-bit Edition. This problem was corrected in Visual C++ version 1.5.
MORE INFORMATIONThe following sample code can be used to demonstrate this problem:
Sample Code
/* Compile options needed: /c /f- /Oez
*/
// Uncomment for work around
// #pragma optimize ("e", off)
typedef struct tagRecord
{
long lField1;
long lField2;
} Record;
typedef Record _far * LPRecord;
long _far _pascal func1 (void _far *);
long _far func2(unsigned, void _far *, LPRecord, void _far *, long);
long dwSmag;
unsigned _far func(
unsigned nParam1,
LPRecord lpParam2,
LPRecord lpParam3,
void _far * lpParam4,
long lParam5)
{
if (func1 (lpParam3))
goto error;
if (lpParam4 == 0)
lpParam4 = (char _far *)lpParam3
+ lpParam3->lField1
+ lpParam3->lField2;
if (lParam5 == -1)
lParam5 = func1 (&dwSmag);
func2 (
nParam1,
(char _far *)lpParam2
+ lpParam2->lField1
+ lpParam2->lField2,
lpParam3,
lpParam4,
lParam5
);
error:
return 0;
}
// Uncomment for work around
// #pragma optimize ("", on)
|
Additional reference words: 7.00 8.00 1.00
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |