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



The information in this article applies to:

  • Microsoft .NET Framework
  • Microsoft Visual C++ .NET (2002)
  • Microsoft Visual Studio .NET (2002), Professional Edition

This article was previously published under Q329193

SYMPTOMS

/Og causes code to be created that throws the following exception error:
0xC0000092: Floating-point stack check

RESOLUTION

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

WORKAROUND

Turn off /Og by using #pragma optimize("g", on/off).

STATUS

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.

MORE INFORMATION

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;
}
				

Modification Type:MinorLast Reviewed:9/27/2005
Keywords:kbHotfixServer kbQFE kbvs2002sp1sweep kbvs2002sp1fix kberrmsg kbbug kbfix kbNetFrame100PreSP2fix kbNetFrame100preSP3fix KB329193