FIX: /Og causes code to be created that throws an exception error

This article was previously published under Q329193
This article has been archived. It is offered "as is" and will no longer be updated.
/Og causes code to be created that throws the following exception error:
0xC0000092: Floating-point stack check

Service pack information

To resolve this problem, obtain the latest service pack for Microsoft Visual Studio .NET. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
837234 List of bugs that are fixed in Visual Studio .NET 2002 Service Pack 1

Hotfix information

The English version of this fix has the file attributes (or later) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
   Date         Time   Version      Size       File name   -----------------------------------------------------   01-Oct-2002  01:41  13.0.9528.0  1,306,624  C2.dll
Turn off /Og by using #pragma optimize("g", on/off).
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section. This problem was first corrected in Visual Studio .NET 2002 Service Pack 1.
The following sample code reproduces the behavior:
#include <stdio.h>#include <float.h>int get_feet_inches(double *num_of_feet,double *num_of_inches){    double inches,feet;    int    fval,ival;    feet   = *num_of_feet;    inches = *num_of_inches;    if (feet   < 0.) feet   = -feet;    if (inches < 0.) inches = -inches;    fval = (int) feet;    ival = (int) inches;    printf("feet = %d, inches = %d\n",fval,ival);    return fval + ival;}				

Article ID: 329193 - Last Review: 01/17/2015 06:05:06 - Revision: 3.2

Microsoft .NET Framework 1.1, Microsoft Visual C++ .NET 2002 Standard Edition, Microsoft Visual Studio .NET 2002 Professional Edition

  • kbnosurvey kbarchive kbhotfixserver kbqfe kbvs2002sp1sweep kbvs2002sp1fix kberrmsg kbbug kbfix kbnetframe100presp2fix kbnetframe100presp3fix KB329193