Symptomen
U gebruikt de compileroptie /Ot (lol snel Code) bij het samenstellen van een toepassing die is geconfigureerd op het x64 platform in Microsoft Visual Studio 2005 Service Pack 1 (SP1). Wanneer u de toepassing uitvoert, worden sommige overzichten als niet correct uitgevoerd. Daarom zijn de resultaten onvoorspelbaar. De als -instructies kunnen bijvoorbeeld worden overgeslagen in de gegenereerde code van de toepassing.
Dit probleem treedt alleen op in het volgende scenario.
-
Er zijn bepaalde instructies MOV tussen twee vergelijken bewerkingen.
-
Deze vergelijken de operanden dezelfde bewerkingen gebruiken.
-
De waarden van de operanden worden gewijzigd door de MOV-instructies.
In dit scenario kunnen de als -instructies in de tweede vergelijkingsbewerking worden overgeslagen.
Opmerkingen
-
Dit probleem kan ook optreden wanneer u de optie/OX /O2 of de toepassing te bouwen.
-
Dit probleem treedt niet op het x86 platform.
Oorzaak
Dit probleem treedt op omdat de compiler optimizer onjuist wordt ervan uitgegaan dat de vlag is ingesteld door de XOR bewerking kan worden gebruikt zonder een vergelijkingsbewerking.
Oplossing
Informatie over de hotfix
Een ondersteunde hotfix is beschikbaar bij Microsoft. Deze hotfix is echter alleen bedoeld voor het probleem dat wordt beschreven in dit artikel. Voer deze hotfix alleen uit op systemen waarop de in dit artikel beschreven problemen zich voordoen. Deze hotfix moet wellicht extra worden getest. Als u geen ernstige hinder ondervindt van dit probleem, is het daarom raadzaam te wachten op de volgende update waarin deze hotfix is opgenomen.
Als de hotfix gedownload kan worden, is er een sectie 'Hotfix downloaden' aan het begin van dit Knowledge Base-artikel. Als deze sectie niet wordt weergegeven, neem dan contact op met Microsoft Customer Service and Support om de hotfix te verkrijgen.
Opmerking Als er andere problemen optreden of als probleemoplossing is vereist, moet u wellicht een apart serviceverzoek indienen. De normale ondersteuningskosten gelden voor extra ondersteuningsvragen en problemen die niet in aanmerking komen voor deze specifieke hotfix. Voor een volledige lijst met telefoonnummers van Microsoft Customer Service and Support of een afzonderlijk serviceverzoek maken, gaat u naar de volgende Microsoft-website:
http://support.microsoft.com/contactus/?ws=supportOpmerking Het formulier 'Hotfix kan worden gedownload' geeft de talen weer waarvoor de hotfix beschikbaar is. Als uw taal niet wordt weergegeven, is dit omdat een hotfix niet voor die taal beschikbaar is.
Vereisten
U moet de Visual Studio 2005 SP 1 geïnstalleerd om deze hotfix te kunnen hebben.
Opnieuw opstarten
U hoeft de computer niet opnieuw op te starten nadat u deze hotfix hebt toegepast.
Informatie over het vervangen van hotfixes
Deze hotfix vervangt geen andere hotfixes.
Bestandsinformatie
De Engelse versie van deze hotfix heeft de bestandskenmerken (of recentere bestandskenmerken) die in de volgende tabel worden weergegeven. De datums en tijden voor deze bestanden worden weergegeven in Coordinated Universal Time (UTC). Wanneer u de bestandsinformatie weergeeft, wordt deze naar lokale tijd geconverteerd. Om het verschil tussen UTC en lokale tijd op te zoeken, gebruikt u het tabblad tijdzone in het onderdeel datum en tijd in het Configuratiescherm.
Bestandsnaam |
Bestandsversie |
Bestandsgrootte |
Datum |
Tijd |
Platform |
---|---|---|---|---|---|
C2.dll |
14.0.50727.3080 |
2,273,280 |
19-Nov-2008 |
18:52 |
x86 |
C2.dll |
14.0.50727.3080 |
7,192,576 |
19-Nov-2008 |
23:25 |
IA-64 |
C2.dll |
14.0.50727.3080 |
2,490,368 |
19-Nov-2008 |
23:26 |
x86 |
C2.dll |
14.0.50727.3080 |
3,600,384 |
19-Nov-2008 |
23:33 |
x64 |
C2.dll |
14.0.50727.3080 |
2,203,648 |
19-Nov-2008 |
23:33 |
x86 |
Tijdelijke oplossing
Om dit probleem te omzeilen, gebruikt u een van de volgende methoden:
-
De vluchtige sleutelwoord gebruiken wanneer u de variabelen die worden gebruikt in de jaarrekening als declareert.
-
Schakel de optie snelheid optimalisatie. Bijvoorbeeld de optie /Ot vervangen met de optie /Os (kleine Code lol) . Of gebruik de optie /O1 in plaats van de /O2 -optie of de optie/OX .
-
Een coderegel toevoegen voordat u de instructies als in de tweede bewerking vergelijken. Bijvoorbeeld een printf -instructie toevoegen.
Status
Microsoft heeft bevestigd dat dit probleem kan optreden in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'.
Meer informatie
Voor meer informatie over een of meer code overzichten worden mogelijk foutief uitgevoerd wanneer u de functie voor de optimalisatie van code in Visual Studio 2005, klikt u op het volgende artikel in de Microsoft Knowledge Base:
925792 een of meer code-instructies worden mogelijk foutief uitgevoerd wanneer u de functie voor de optimalisatie van code in Visual Studio 2005
Voor meer informatie over terminologie voor software-updates klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:
824684 beschrijving van de standaardterminologie die wordt gebruikt om software-updates voor Microsoft te beschrijven