Laut einem SQLite-Forumpost verursacht die aktuelle Version 11.0.0 des Clang-Compilers Probleme beim Übersetzen der SQLite-Datenbank. Schuld sei eine falsche Annahme des Compilers.
Entwickler Richard Hipp hat den Fehler im SQLite-Forum gemeldet. Er stieß darauf, als er einen Bugreport von OSS-Fuzz auswertete. Das Open-Source-Tool von Google siedelt sich in der Continuous-Integration-Pipeline an und spürt dort automatisiert Fehler im frisch eingecheckten Quellcode auf.
Nachdem Hipp den gemeldeten Fehler nicht reproduzieren konnte, stellte er das im Bugreport beschriebene Szenario nach. Wie sich herausstellte, übersetzt Clang 11.0.0 eine bestimmte Codekonstruktion falsch. Vereinfacht gesagt nimmt der Compiler an, dass eine bestimmte Funktion einen bestimmten Wert nicht ändern darf. Das aber sei laut Hipp nicht richtig und führe zu falsch übersetztem Code.
Als Reaktion habe Hipp den Code, der den Fehler in Clang triggert, leicht abgeändert, zumindest für Version 3.32.1 der Datei “sqlite3.c”. Es könnte noch weitere Fehler geben, schreibt er und ruft Entwickler dazu auf, beim Einsatz von Clang 11.0.0 Vorsicht walten zu lassen.





