Article ID: 306083 - Last Review: September 26, 2005 - Revision: 2.1 FIX: Visual C++ compiler optimizer may remove loopsThis article was previously published under Q306083 On This PageSYMPTOMS Under certain, rare conditions, the C++ compiler may
optimize loops out of a program. When you examine the compiled assembler, you
may note that there are functions that do not contain looping instructions,
although the source code contains loop constructs. CAUSE This problem occurs because of a bug in the global
optimizer. RESOLUTIONService pack informationTo 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
(http://support.microsoft.com/kb/837234/
)
List of bugs that are fixed in Visual Studio .NET 2002 Service Pack 1
Hotfix informationThe 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 Version Size File name ------------------------------------------------- 11-Apr-2002 13.0.9485.0 1,753,088 C2.dll 11-Apr-2002 13.0.9485.0 2,105,344 C1xx.dll WORKAROUND To work around the problem, use a larger data type as the
iterator value. STATUSMicrosoft 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 program is an example of the behavior. After
you build this sample program by using the default compiler settings for
release mode, it prints out Loop only one time. APPLIES TO
| Article Translations
|

Back to the top
