GCC 10.1 erscheint mit experimenteller statischer Code-Analyse

Außerdem haben die Entwickler der GNU Compiler Collection an der Unterstützung für den nächsten C++-Sprachstandard gearbeitet.

In Pocket speichern vorlesen Druckansicht 82 Kommentare lesen
GCC 10.1 erscheint mit experimenteller statischer Code-Analyse
Lesezeit: 2 Min.
Von
  • Alexander Neumann

Schon seit über 33 Jahren ist immer im Frühjahr mit einer neuen großen Ausgabe der GNU Compiler Collection (GCC) zu rechnen – so auch dieses Jahr. Bei der neuen Version 10.1 lag der Fokus unter anderem auf der Unterstützung des bald erscheinenden C++20-Sprachstandards, und das sowohl auf Seite der Compiler als auch auf der Seite der libstdc++-Bibliothek. Ein vollständiger Support ist noch nicht gegeben, man ist aber wohl recht weit bei der Umsetzung. C++20 wird als zentrale Features Concepts, Ranges, die Unterstützung von Coroutinen und Modules bringen.

Darüber hinaus ist von einigen Überarbeitungen in Richtung des nächsten C-Standards, verschiedenen Optimierungen und Fehlerbehebungen, Änderungen bei den unterstützten Hardwareplattformen und Verbesserungen an den Compiler-Backends die Rede. Auf Hardwareseite geht es unter anderem um die Unterstützung für einige neuere ARM-Prozessorkerne wie Cortex A77, Cortex A76AW, Cortex A65/A65AE, Cortex A34 und Marvell Thunder X3.

GCC 10.1 unterstützt zudem OpenACC 2.6 in den C-, C++- und Fortran-Compilern. Der Support für OpenMP 5.0 wurde gegenüber GCC 9 ausgebaut, sodass man anscheinend nahe an einer vollständigen Unterstützung der Programmierschnittstelle für die Shared-Memory-Programmierung ist. OpenMP und OpenACC erlauben jetzt das Offloading auf AMDs Radeon-GPUs; unterstützt werden die dritte Generation Fiji und die fünfte Generation VEGA 10/VEGA 20.

Außerdem gibt es eine neue, aber noch experimentelle statische Code-Analyse. Bei GCC 10.1 konzentriert sich die statische Code-Analyse noch auf C-Code und sie arbeitet auf Basis von GIMPLE SSA. Bei Letzterem handelt es ich um eine Low-Level GIMPLE Intermediate Representation, die in SSA-Form (Single Static Assignment) umgeschrieben wurde. Die Analyse gibt zum Beispiel Warnungen über mehrfache Deallokationen und andere Malloc/Free-Probleme aus. Mit der statischen Code-Analyse gibt es somit ein neues Feature, das man bislang im Vergleich mit LLVM beziehungsweise Clang bei GCC vermisste.

Das neue Release ist schließlich auch deswegen besonders, weil die GCC-Entwickler Anfang des Jahres den Umzug des Repositorys von Subversion zu Git vollzogen haben.

Einen Überblick zu allen Änderungen, neuen Features und Fehlerbehebungen bieten die Release Notes. Weitere Informationen zur C++20-Unterstützung findet man auf einer dafür aufgesetzten Webseite. (ane)