Příznaky
Použijte možnost kompilátoru /Ot (něco pro rychlé kód) při vytváření aplikace, která je nakonfigurována na x64 platform v Microsoft Visual Studio 2005 Service Pack 1 (SP1). Při spuštění aplikace, některé příkazy Pokud může pracovat nesprávně. Proto jsou výsledky nepředvídatelné. Například Pokud příkazy lze přeskočit do generovaného kódu aplikace.
K tomuto problému dochází pouze v následující situaci.
-
Existují některé pokyny MOV mezi dvě operace porovnání.
-
Tyto operace použití porovnání stejné operandy.
-
Podle pokynů MOV jsou změněny hodnoty operandy.
V tomto scénáři Pokud příkazy v druhém operace porovnání mohou být přeskočeny.
Poznámky
-
Tomuto problému může dojít také při použití parametru /O2 nebo /Ox možnost pro sestavení aplikace.
-
Tento problém se nevyskytuje v x86 platformě.
Příčina
K tomuto problému dochází, protože optimalizace kompilátoru nesprávně předpokládá, že bez operace porovnání lze použít příznak, který je nastaven pomocí operace XOR.
Řešení
Informace o opravě hotfix
Společnost Microsoft má k dispozici podporovanou opravu hotfix. Tato oprava hotfix je však určena pouze problému popsanému v tomto článku. Tuto opravu hotfix instalujte pouze do systémů, ve kterých dochází k potížím popsaným v tomto článku. Tato oprava hotfix může být dále testována. Proto pokud nejste vážně ohrožen tímto problémem, doporučujeme počkat na další aktualizaci softwaru, která obsahuje tuto opravu hotfix.
Pokud je oprava hotfix k dispozici ke stažení, je v horní části tohoto článku znalostní báze Knowledge Base oddíl "Oprava Hotfix je dostupná ke stažení" . Pokud tato sekce není uvedena, obraťte se na Zákaznický servis a podporu společnosti Microsoft k získaní opravy hotfix.
Poznámka: Pokud nastanou další problémy nebo bude nutné další řešení potíží, bude možná třeba vytvořit další samostatný požadavek na služby. Běžná cena za technickou podporu se vztahuje k dodatečným otázkám podpory a k problémům, které se netýkají této konkrétní opravy hotfix. Úplný seznam telefonních čísel služeb zákazníkům společnosti Microsoft a podpoře nebo vytvořit zvláštní požadavek na službu naleznete na následujícím webu společnosti Microsoft:
http://support.microsoft.com/contactus/?ws=supportPoznámka: Ve formuláři „Oprava hotfix je dostupná ke stažení“ se zobrazují jazyky, pro které je oprava hotfix k dispozici. Pokud váš jazyk není zobrazen, to je protože oprava hotfix není k dispozici pro daný jazyk.
Předpoklady
Visual Studio 2005 SP 1 nainstalovat tuto opravu hotfix, musí mít.
Požadavek na restartování
Po instalaci této opravy hotfix nemusíte restartovat počítač.
Informace o nahrazení opravy hotfix
Tato oprava hotfix nenahrazuje žádné další opravy hotfix.
Informace o souborech
Anglická verze této opravy hotfix má atributy (nebo pozdější atributy souborů) uvedené v následující tabulce. Kalendářní data a časy jednotlivých souborů jsou uvedeny v koordinovaném světovém čase (UTC). Při zobrazení informací o souboru je převeden na místní čas. Rozdíl mezi místním časem a časem UTC naleznete na kartě Časové pásmo v položce Datum a čas v okně Ovládací panely.
Název souboru |
Verze souboru |
Velikost souboru |
Datum |
Čas |
Platforma |
---|---|---|---|---|---|
C2.dll |
14.0.50727.3080 |
2,273,280 |
19. listopadu 2008 |
18:52 |
x86 |
C2.dll |
14.0.50727.3080 |
7,192,576 |
19. listopadu 2008 |
23:25 |
IA-64 |
C2.dll |
14.0.50727.3080 |
2,490,368 |
19. listopadu 2008 |
23:26 |
x86 |
C2.dll |
14.0.50727.3080 |
3,600,384 |
19. listopadu 2008 |
23:33 |
x64 |
C2.dll |
14.0.50727.3080 |
2,203,648 |
19. listopadu 2008 |
23:33 |
x86 |
Jak potíže obejít
Chcete-li tento problém vyřešit, použijte jednu z následujících metod:
-
Použití těkavých klíčové slovo při deklarování proměnné, které se používají v případě prohlášení.
-
Zakažte možnost optimalizace rychlosti. Například nahraďte /Ot možnost s parametrem /Os (něco pro malé kód) . Nebo místo /O2 nebo /Ox možnost použít možnost /O1 .
-
Přidáte řádek kódu před operace porovnání Pokud příkazy v druhém. Například přidáte příkaz printf .
Stav
Společnost Microsoft potvrdila, že se jedná o problém v produktech společnosti Microsoft, které jsou uvedeny v části "Platí pro".
Další informace
Další informace o kódu jeden nebo více příkazů mohou spustit nesprávně při použití funkce optimalizace kódu v aplikaci Visual Studio 2005 klepněte na následující číslo článku databáze Microsoft Knowledge Base:
925792 jeden nebo více příkazů kódu mohou spustit nesprávně při použití funkce optimalizace kódu v aplikaci Visual Studio 2005
Pro další informace o terminologii používané v aktualizacích softwaru, klepněte na následující číslo článku k zobrazení článku v databázi Microsoft Knowledge Base:
824684 Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft