gcc Optimierung == FUBAR

Ich könnte jetzt darüber schreiben, wie man mit direkten MSDE SQL Befehlen die Zugangsberechtigung für den Business Contact Manager nach einer Domänen Migration wieder gerade biegt. Oder wie man die NTUSERS.DAT in regedit lädt. Oder wie man mit den Kommandozeilen Tools eseutil und isinteg eine Exchange Datenbank repariert. ABER es ist Wochenende.

Auf der Suche nach einem Bug in einem meiner Projekte, bin ich nun tatsächlich auch mal auf ein gcc Phänomen gestossen. Nachdem ich keine Fehler in der Logik erkennen konnte, habe ich mit dem gcc experimentiert:

  • -O2: Eine Funktion liefert Unsinn zurück. Das wird abgefangen, wodurch eine verkettete Liste aber nur mit 1/s durchlaufen wird.
  • -O3: Alles funktioniert, wie ich mir das vorgestellt habe.
  • -O1: Alles funktioniert, aber die Ergebnisstrings bleiben leer.
  • -Os: Segmentation fault…

Faszinierend.