Ich benutze 4.1.2. Hat jemand irgendwelche Ideen von den besten Orten in meinem Code zu sehen? Erfahrung mit gemeinsamen Ursachen? Es gibt einige hässliche Zeiger-Umwandlungen (dh, d = (double) (* (float *) p), wobei p Pointer-to-int ist), an dem ich gerade arbeite, aber noch kein Glück.
Für was es wert ist, gibt -O0 die richtige Antwort. Danke für jede Hilfe.GCC gibt verschiedene numerische Ergebnisse mit -O0 und -O2
Antwort
würde ich für strenge Aliasing Fragen prüfen, wie hier gezeigt: http://www.cellperformance.com/mike_acton/2006/06/understanding_strict_aliasing.html
Ohne genau zu wissen, was Ihr Code tut, mir die Erwähnung von „hässlich Zeiger wirft“ Probleme vermuten Aliasing machen.
Es wäre hilfreich für Sie und erleichtert es uns zu beantworten, wenn Sie einen Code zur Verfügung gestellt, der das Problem demonstrierte.
Der Beitrag http://stackoverflow.com/questions/83962/do-i-have-a-gcc-optimization-bug-or-ac-code-problem zeigt ein ähnliches Problem – an0nym0usc0ward
Kompilieren mit Wall (oben vorgeschlagen) tat es . Die schlechte Zeile ist * (p1 + dcb.ntrc_hdr + r * NTW + t) = * (int *) &ftmp; –
Danke allen, -fno-strict-aliasing (von mehreren vorgeschlagen) löste mein Problem. Danke für deine Hilfe.
Lektion gelernt: Kompilieren Sie immer mit Warnflags.
Stapelüberlauf ist kein Forum. Antworten können aus vielen Gründen, wie zum Beispiel Abstimmungen und Änderungen, neu angeordnet werden und sollten daher nicht dazu verwendet werden, auf andere Antworten zu antworten. Bitte hinterlassen Sie Kommentare oder bearbeiten Sie stattdessen die Frage. Wenn Ihr Problem aufgrund einer Antwort gelöst wurde, markieren Sie es bitte als akzeptiert (klicken Sie auf das grüne Häkchen unter dem Abstimmungszähler). Vergessen Sie nicht, hilfreiche Antworten abzugeben! – ephemient
- 1. Unterschiede zwischen -O0 und -O1 in GCC
- 2. gcc -O0 vs. -og Kompilierung
- 3. seltsame integer Verhalten mit gcc -O2
- 4. Bitgenaue Gleitkommaberechnungen auf AArch64 mit O2 beibehalten
- 5. Verwenden von -g und -O2-Optionen in gcc
- 6. Verschiedene numerische Variablentypen verwenden
- 7. verschiedene Rand() Ergebnisse unter Windows und Linux
- 8. Make-Datei kompilieren mit -g und -O0 automatisch
- 9. lesen komprimierte Daten gibt verschiedene Ergebnisse
- 10. GCC, -O2 und Bitfelder - ist das ein Fehler oder eine Funktion?
- 11. verschiedene Ergebnisse mit imfilter und conv2
- 12. verschiedene Ergebnisse mit Quaternion und Euler-Winkel
- 13. Python Division Operator gibt verschiedene Ergebnisse
- 14. GCC gibt falsche Antwort mit Optimierung aktiviert
- 15. Warum Encoding.Default.GetBytes() gibt verschiedene Ergebnisse in VB.NET und C# zurück?
- 16. Seltsames gcc6.1 -O2-Kompilierungsverhalten
- 17. Cropping zwei transparente PNG-Bilder mit Imagick gibt verschiedene Ergebnisse
- 18. Warum gibt diese constexpr-Funktion unter gcc andere Ergebnisse?
- 19. UCWA - verschiedene Ergebnisse für verschiedene Anwendungen
- 20. Verschiedene Ergebnisse mit OCCURS mit verschiedenen Compilern
- 21. Verschiedene CSS-Ergebnisse für Chrome und Firefox
- 22. Vermeiden Sie zwei verschiedene numerische Unterklassen (int und long)?
- 23. Stoppuhr gibt verschiedene Ergebnisse, je nachdem, wo sich Code befindet
- 24. Verständnis Assembly: -O2 wenn Verzweigung
- 25. Directory.GetCurrentDirectory() gibt verschiedene Ergebnisse basierend auf Befehlszeilenargumente zurück
- 26. Verschiedene Ergebnisse mit Laravel Lazy Eager Loading
- 27. Verschiedene Ergebnisse mit randomForest() und caret's randomForest (method = "rf")
- 28. Warum gibt die String.intern() -Methode zwei verschiedene Ergebnisse zurück?
- 29. Verschiedene Ergebnisse auf verschiedenen System
- 30. sqlalchemy gibt verschiedene Ergebnisse der SELECT-Befehl (query.all)
könnten Sie ein (nicht) funktionierendes Beispiel angeben? – Gyom
Kompilieren Sie mit -Wall und -Wextra? –
Tut mir leid, ich arbeite daran. Schwerfällig. –