Programmieren: GCC Version 13.1 spricht SARIF bei der statischen Codeanalyse
Das neue GCC-Release kann Diagnosedaten auch im OASIS-Standardaustauschformat SARIF bereitstellen. Ein neues Modula-2-Frontend schafft die Basis für Rust.
Die GNU Compiler Collection (GCC) liegt in Version 13.1 vor. Für die von Werkzeugen zur statischen Codeanalyse ausgegebenen Ergebnisse stellt das neue Major Release das Static Analysis Results Interchange Format (SARIF) parat. Ein bisher noch separat zur Verfügung stehendes Frontend für die Programmiersprache Modula-2 wurde nun integriert. Nach Einschätzung der GCC-Entwickler soll es die Basis schaffen für ein Rust-Frontend, dessen Veröffentlichung laut Ankündigung für eines der nächsten Releases geplant sei.
Weiteres Austauschformat für Diagnosedaten
Das zum OASIS-Standard konforme Austauschformat SARIF steht Entwicklerinnen und Entwicklern ab GCC 13.1 für das Erfassen der Ergebnisse statischer Analysewerkzeuge zur Verfügung, wie sie unter anderem GCCs -fanalyzer
bei der Analyse von C-Code liefert. Das auf JSON basierende Format lässt sich aber auch nutzen, um anderweitige Warnungen und Fehlermeldungen in der GNU Compiler Collection in maschinenlesbarer Form weiterzuverarbeiten. Dazu stehen beispielsweise die beiden neuen Optionen -fdiagnostics-format=sarif-stderr
und -fdiagnostics-format=sarif-file
bereit.
Wie bereits zur Veröffentlichung von GCC 12.1 angekündigt, nimmt die GNU Compiler Collection endgültig Abschied vom Debugging-Format STABS. Neben dem neu eingeführten Compact Type Format (CTF) stellt GCC die etablierte Alternative DWARF nun offenbar in nahezu allen Konfigurationen vollumfänglich bereit. Nach dem Wegfall von STABS müssen Entwicklerinnen und Entwickler künftig sowohl auf die Optionen -gstabs
and -gxcoff
verzichten, als auch auf den Debugger dbx, für den GCC keinen offiziellen Support mehr bietet.
Für die auf Shared-Memory-Programmierung ausgelegte Schnittstelle OpenMP (Open Multi-Processing) in Version 5.1 hat GCC die Liste der verfügbaren Funktionen erweitert – darunter beispielsweise der Locator omp_all_memory
, inoutset
für die depend[/code)-Bedingung sowie [code]nowait
für die taskwait
-Richtlinie. Darüber hinaus stehen Entwicklerinnen und Entwicklern auch erste Features aus OpenMP 5.2 parat, wie etwa die Bedingungen firstprivate
und allocate
für den scope
-Construct.
Weiterführende Details zu GCC 13.1
Weitere Informationen zu GCC 13.1 lassen sich der Ankündigung über die GCC-Mailingliste entnehmen, einen kompletten Überblick aller Änderungen bieten die Change Notes. Interessierte können die neue GCC-Version bei Sourceware sowie über die Mirror-Seiten auf den GNU-Servern direkt herunterladen.
(map)