LLVM 10.0.0: Clang unterstützt die Concepts von C++20

Die Compiler-Infrastruktur LLVM und liegt nun in Version 10.0.0 vor. Clang, das Frontend für C, C++ und Objective C, startet neuerdings nicht mehr in einem Sub-Prozess und unterstützt C++ Concepts.

Zum Übersetzen von Code startete Clang bislang einen eigenen Sub-Prozess namens “clang -cc1”. Das neue Standardverhalten besteht darin, das Kompilieren im Prozess selbst zu starten. Wer das alte Verhalten wiederherstellen möchte, erledigt das über die Option “-fno-integrated-cc1”.

Concepts sind ein Teil des neuen C++-Standards C++20, der noch in diesem Jahr verabschiedet werden soll. Die LLVM-Entwickler bezeichnen den neuen Standard als C++2a und unterstützen in Version 10 von Clang die Concepts-Konzepte. Die Concepts ermöglichen es unter anderem, in Templates Funktionen und Klassen zu definieren, ohne dabei an falsch eingesetzten Datentypen zu scheitern. Dazu deklarieren Entwickler bestimmte Anforderungen an Templates, die der Compiler überprüft. Er wirft einen Fehler, falls er eine Bedingung nicht umsetzen kann.

Warnungen und Flaggen

Daneben bringt Clang eine ganze Reihe neuer Warnungen mit oder weitete den Gültigkeitsbereich existierender Warnungen aus. So gibt es die neue Warnung “-Wfinal-dtor-non-final-class”, die darauf hinweist, dass Klassen einen finalen Destructor besitzen, aber nicht als final markiert sind. Am Ende sollen die Warnungen Entwicklern dabei helfen, schon beim Kompilieren mit Clang möglichst viele Fehler im Code aufzuspüren.

Nicht zuletzt bringt Clang 10.0.0 verschiedene neue Compiler-Flags mit und schickt andere in den Ruhestand. Darunter sind auch einige Flags für die RISC-V-Architektur, etwa “-ffixed-xX”, das passende Allzweck-Register reserviert. Weitere Flags wurden entfernt, wieder andere verändert. Für Entwickler lohnt sich also ein Blick in die Release Notes für Clang, aber auch für LLVM als Ganzes.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben