ID: Q115535
7.00 | 1.00 MS-DOS | WINDOWS kbtool kbfixlist kbbuglist
The information in this article applies to:
- Microsoft C/C++ for MS-DOS, version 7.0
- Microsoft Visual C++ for Windows, version 1.0
The 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.
The 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:
-or-
Microsoft 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.
The following sample code can be used to demonstrate this problem:
/* 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
KBCategory: kbtool kbfixlist kbbuglist
KBSubcategory: CLIss
Keywords : kb16bitonly kbCompiler kbbuglist kbfixlist
Version : 7.00 | 1.00
Platform : MS-DOS WINDOWS
Solution Type : kbfix
Last Reviewed: September 22, 1997