PARANDUS: Kui käivitate rakenduse, mis on loodud, kasutades Microsoft Visual Studio 2005 Service Pack 1 (SP1) /Ot kompilaator variant, mõned "kui" avalduste käivitada valesti

Sümptomid

Kasutate /Ot (kasuks kiiresti kood) kompilaator variant kui koostate rakendus, mis on konfigureeritud x64 platvormi Microsoft Visual Studio 2005 Service Pack 1 (SP1). Kui käivitate rakenduse, käivitada teatud kui avalduste valesti. Seetõttu on tulemused ettearvamatud. Näiteks kui väidetest võib vahele rakenduse genereeritud koodi.

See probleem ilmneb ainult järgmistel juhtudel.

  • On mõned MOV juhiseid kaks võrdlus toimingute vahel.

  • Nende võrdlemine toiminguid kasutada sama operandi.

  • Selle operandi väärtust muudetakse MOV juhistega.

Selle stsenaariumi korral võib kui avalduste võrdlus teine toiming vahele.

Märkused

  • See probleem võib ilmneda ka siis, kui kasutate rakenduse kaudu/O2 või /Ox .

  • See probleem ei esine x86 platvormi.

Põhjus

See probleem ilmneb seetõttu kompilaator optimeerija valesti eeldab, et lipp, mis on määratud XOR toimingu kasutamist kaasamata seejuures võrdlus tööd.

Lahendus

Kiirparanduse teave

Toetatud käiguparandus on saadaval Microsoftilt. See kiirparandus on ette nähtud üksnes käesolevas artiklis kirjeldatud probleemi lahendamiseks. Kasutage seda kiirparandust ainult selles artiklis kirjeldatud probleemiga süsteemide. Seda kiirparandust võidakse täiendavalt testida. Seega, kui probleem teid tõsiselt ei kahjusta, soovitame oodata järgmist tarkvaravärskendust, mis sisaldab seda kiirparandust.

Kui kiirparandus on allalaadimiseks saadaval, on selle teabebaasi artikli alguses "Kiirparandus on allalaadimiseks saadaval" sektsiooni. Kui seda jaotist ei ole, kontakteeruge vastava kiirparanduse hankimiseks Microsofti klienditeeninduse ja toega.

Märkus. Kui ilmneb veel probleeme või kui on tarvis teha tõrkeotsing, peate looma eraldi tugiteenuse taotluse. Tavapärane tugiteenuse tasu kehtib täiendavatele tugiteenustega seotud küsimustele ning probleemidele, mis pole lahendatavad konkreetse kiirparandusega. Täieliku loetelu Microsofti klienditeeninduse ja -toe telefoninumbrite või eraldi tugiteenuse taotluse loomiseks külastage järgmist Microsofti veebisaiti:

http://support.microsoft.com/contactus/?ws=supportMärkus. "Kiirparandus on allalaadimiseks saadaval" vormil kuvatakse keeled, mille jaoks kiirparandus on saadaval. Kui te ei näe oma keelt, ei ole kiirparandus selles keeles saadaval.

Eeltingimused

Visual Studio 2005 SP1 installitud selle kiirparanduse rakendamiseks peab teil olema.

Taaskäivitamise nõue

Te ei pea pärast selle kiirparanduse rakendamist arvutit taaskäivitama.

Kiirparanduse asendamise teave

See kiirparandus ei asenda ühtegi muud käigultparandust.

Failiteave

Sellel kiirparanduse ingliskeelsel versioonil on failiatribuudid (või hilisemad failiatribuudid), mis on loetletud järgmises tabelis. Kuupäevad ja kellaajad need failid jaoks on loetletud maailmaaja järgi (UTC). Faili teabe vaatamisel teisendatakse see kohalikule ajale. UTC ja kohaliku aja erinevuste väljaselgitamiseks kasutage juhtpaneeli üksuses kuupäev ja kellaaeg vahekaarti ajavöönd .

Faili nimi

Faili versioon

Faili maht

Kuupäev

Aeg

Platvorm

C2.dll

14.0.50727.3080

2,273,280

19 November 2008

18:52

x86

C2.dll

14.0.50727.3080

7,192,576

19 November 2008

23:25

IA-64

C2.dll

14.0.50727.3080

2,490,368

19 November 2008

23:26

x86

C2.dll

14.0.50727.3080

3,600,384

19 November 2008

23:33

x64

C2.dll

14.0.50727.3080

2,203,648

19 November 2008

23:33

x86

Lahendus

Selle probleemi lahendamiseks kasutage ühte järgmistest meetoditest.

  • Kasutage lenduvate märksõna, kui muutujaid, mis on kasutusel kui avalduste tuvastada.

  • Keelake suvand kiiruse optimeerimine. Näiteks Asendage /Ot suvandi /Os (kasuks väike kood) võimalust. Või kasutage suvandit /O1 kaudu/O2 või /Ox asemel.

  • Lisada koodi rida, enne kui avalduste teises võrrelge tööd. Näiteks lisage printf lause.

Olek

Microsoft on kinnitanud, et see probleem esineb jaotises "Kehtib järgmiste toodete kohta" loetletud Microsofti toodetel.

Lisateabe saamiseks

Lisateabe saamiseks ühe või mitme koodi avalduste käivitada valesti koodi optimeerimine funktsiooni kasutamisel Visual Studio 2005 kohta klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

925792 ühe või mitme koodi avalduste käivitada valesti koodi optimeerimine funktsiooni kasutamisel Visual Studio 2005

Tarkvaravärskenduste terminoloogia kohta lisateabe saamiseks avage Microsofti teabebaasi (Knowledge Base) artikkel, klõpsates järgmist artiklinumbrit:

824684 Microsofti tarkvaravärskenduste iseloomustamiseks kasutatavate standardterminite kirjeldus

Kas vajate veel abi?

Täiendage oma oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liitu Microsofti Insideri programmis osalejad

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×