RyuJIT C # falsches Summenergebnis mit / optimieren

9

Ich habe diesen Code:

%Vor%

Wenn ich meine Anwendung im Debug-Modus erstelle, ist alles in Ordnung, test index pre druckt 12 und test index post druckt 14. dasselbe im Freigabemodus mit Optimize code deaktiviert. Wenn ich mit Optimize code checked test index post drucke 18 statt 14 Gleiches Ergebnis, wenn ich index += ethType.Length; durch index += 2; ersetze. scheint nur index++;index++; funktioniert.
Ich habe diesen Code in einer leeren Anwendung ausprobiert und die Summen sind ok.
App ist Multithreading, aber hier gibt es keine Nebenläufigkeit.
Dekompilierter Code von DLL scheint in Ordnung zu sein.
Irgendwelche Ideen, warum das passiert?

BEARBEITEN: Wird nur angezeigt, wenn die App für x64 kompiliert wurde. x86 ist in Ordnung.
EDIT 3: einige Infos zum Build env:
visuelles Studio 15.0.0-RTW + 26228.4
Framework 4.7.02053
kann dieses Problem in Framework 4.6.2 und 4.7 auslösen. andere Frameworks werden nicht getestet.
EDIT 5: neues, kleineres Beispielprojekt . keine Abhängigkeiten benötigt.
EDIT 6: Demontage des Testprojekts hier . (zu lange, um es hier zu posten)

    
rmbq 02.08.2017, 12:53
quelle

1 Antwort

0

Es war ein bereits gemeldeter Fehler in RyuJIT, mehr Details hier . Wird in Kürze in einem Hotfix behoben.

    
rmbq 04.08.2017, 08:11
quelle

Tags und Links