GCC 9.1


GCC 9.1

Am 3. Mai erfolgte die erste öffentliche Veröffentlichung der neunten Version von GCC: GCC 9.1.
Es enthält viele wesentliche Verbesserungen und Ergänzungen gegenüber dem achten
Ausführung.

Allgemeine Änderungen

Optionen
Neue integrierte Funktionen
Neues Attribut
Andere

Zahlreiche Verbesserungen bei der Codegenerierung im Zusammenhang mit:

  • Generierung von Schalterkonstrukten;
  • interprozedurale Optimierungen;
  • Optimierung basierend auf Profiling-Informationen;
  • Optimierung in der Montagephase (LTO);

Auch das interne Format von gcov ist jetzt JSON und die neue Option --use-hotness-colors beinhaltet das Färben von Codezeilen basierend auf der Häufigkeit ihrer Verwendung.

Sprachen

Qualität und Vollständigkeit der Umsetzung OpenACC Die Sprachen C, C++ und Fortran werden weiter verbessert.

C-ähnliche Sprachen
  • Teilweise Unterstützung für OpenMP 5.0 wurde implementiert;
  • Funktion hinzugefügt __builtin_convertvector;
  • Warnung hinzugefügt -Waddress-of-packed-member;
  • Verbesserungen an einer Reihe bestehender Warnungen;
  • Der Fehlertext bei der Übergabe der falschen Anzahl von Argumenten an ein Makro enthält jetzt die Deklaration des Makros selbst;
  • Verbesserungen bei Tippfehlerkorrekturvorschlägen.
C
  • Unterstützen Sie _Static_assert mit einem Argument für -std=c2x (zukünftiger C-Standard);
  • Neue Warnung -Wabsoluter Wert, was den falschen Argumenttyp für Funktionen wie abs() abfängt.
C + +
  • Neue Warnungen: -Wdeprecated-copy,
    -Winit-list-lifetime,
    -Wredundanter-Zug,
    -Wpessimizing-move,
    -Wclass-Konvertierung;
  • Es wird daran gearbeitet, neue Funktionen aus dem zukünftigen Standard zu implementieren C++2a;
  • Das Frontend speichert jetzt genauere Informationen zu einer Reihe von Quellcodeelementen, wodurch Sie detailliertere Informationen in der Diagnose anzeigen können;
  • Verbesserte Diagnose für überladene Funktionen, binäre Operatoren, Funktionsaufrufe und Formatzeichenfolgen;
  • Von einigen Entwicklungsumgebungen unterstützte automatische Korrekturen für eine Reihe häufiger Fehler (fehlende Klammern, Namespaces, Tippfehler usw.) wurden hinzugefügt.
libstdc ++
  • Die C++17-Implementierung ist nicht mehr experimentell;
  • Parallele Algorithmen hinzugefügt, , , A erfordert nicht mehr -lstdc++fs;
  • Verbesserte experimentelle Unterstützung für C++2a ( , , std::bind_front usw.);
  • Unterstützung für das Öffnen von Dateistreams unter Windows, deren Pfade Nicht-Zeichen enthalten;
  • Erste Unterstützung unter Windows;
  • Erste Unterstützung für Networking TS.
D

Die D-Sprachversion 2.076 ist in GCC enthalten.

Fortran
  • Volle Unterstützung für asynchrone E/A;
  • BACK-Argument für MINLOC und MAXLOC implementiert;
  • Implementierte FINDLOC- und IS_CONTIGOUS-Funktionen;
  • Die Syntax für den Zugriff auf die Komponenten komplexer Zahlen wurde implementiert: c%re und c%im;
  • Implementierte Syntax str%len und a%kind;
  • C-Deskriptoren und ISO_Fortran_binding.h-Header implementiert;
  • Gelockerte Anforderungen an das Ergebnis der MAX- und MIN-Funktionen, wenn eines der Argumente NaN ist;
  • Option hinzugefügt -fdec-include;
  • Richtlinie hinzugefügt GEBAUT.
libgccjit

Andere

Viele architektur- und betriebssystemspezifische Änderungen.

Source: linux.org.ru

Kommentar hinzufügen