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.
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.
Weitergehende Sprachunterstützung, mehr Hardware-Support
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.
Statische Code-Analyse
Außerdem gibt es eine neue, aber noch experimentelle statische Code-Analyse [1]. 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 [2]. Weitere Informationen zur C++20-Unterstützung findet man auf einer dafür aufgesetzten Webseite [3]. (ane [4])
URL dieses Artikels:
https://www.heise.de/-4717128
Links in diesem Artikel:
[1] https://developers.redhat.com/blog/2020/03/26/static-analysis-in-gcc-10/
[2] https://gcc.gnu.org/gcc-10/changes.html
[3] https://gcc.gnu.org/projects/cxx-status.html
[4] mailto:ane@heise.de
Copyright © 2020 Heise Medien