GCC 9.1


GCC 9.1

Am 3. Mai wurde die erste öffentliche Version 9.1 von GCC veröffentlicht.
Sie enthält zahlreiche wesentliche Verbesserungen und Ergänzungen im Vergleich zur achten
Version.

Allgemeine Änderungen

Optionen
Neue integrierte Funktionen
Neues Attribut
Sonstiges

Zahlreiche Verbesserungen der Codeerzeugung im Zusammenhang mit:

  • Switch-Konstruktionen generieren;
  • zwischenprozeduralen Optimierungen;
  • Optimierung basierend auf Profilinformationen;
  • Optimierung in der Linkphase (LTO);

Das interne Format von gcov ist jetzt JSON, und die neue Option —use-hotness-colors ermöglicht die Farbgestaltung von Codezeilen basierend auf ihrer Nutzungshäufigkeit.

Sprachen

Qualität und Vollständigkeit der Implementierung OpenACC in C, C++ und Fortran wird weiterhin verbessert.

C-ähnliche Sprachen
  • Teilweise Unterstützung von OpenMP 5.0 implementiert;
  • Funktion hinzugefügt __builtin_convertvector;
  • Eine Warnung wurde hinzugefügt -Waddress-of-packed-member;
  • Verbesserungen bei mehreren bestehenden Warnungen;
  • Die Fehlermeldung bei der Übergabe einer falschen Anzahl von Argumenten an ein Makro enthält jetzt die Deklaration des Makros selbst;
  • Verbesserungen bei den Vorschlägen zur Korrektur von Tippfehlern.
C
  • Unterstützung von _Static_assert mit einem Argument für -std=c2x (künftiger C-Standard);
  • Eine neue Warnung -Wabsolute-value, die falsche Argumenttypen für Funktionen wie abs() erkennt.
C++
  • Neue Warnungen: -Wdeprecated-copy,
    -Winit-list-lifetime,
    -Wredundant-move,
    -Wpessimizing-move,
    -Wclass-conversion;
  • Es wird an der Umsetzung neuer Funktionen aus dem zukünftigen Standard gearbeitet. C++ 2a;
  • Das Frontend speichert jetzt genauere Informationen über eine Reihe von Quellcode-Elementen, was eine detailliertere Anzeige in Diagnosen ermöglicht.
  • Die Diagnosen für überladene Funktionen, binäre Operatoren, Funktionsaufrufe und Formatzeichenfolgen wurden verbessert.
  • Einige Entwicklungsumgebungen unterstützen automatische Korrekturen für eine Reihe von gängigen Fehlern (fehlende Klammern, Namensräume, Tippfehler usw.).
libstdc++
  • Die Implementierung von C++17 ist nicht mehr experimentell.
  • Es wurden parallele Algorithmen, , hinzugefügt, und benötigt nicht mehr -lstdc++fs.
  • Die experimentelle Unterstützung von C++ 2a (, , std::bind_front usw.) wurde verbessert.
  • Unterstützung für das Öffnen von Datei-Streams unter Windows, deren Pfade Zeichen außerhalb von char enthalten.
  • Erste Unterstützung für unter Windows.
  • Erste Unterstützung für Networking TS.
OS-Angriffen

Die D-Sprache Version 2.076 ist Teil von GCC.

Fortran
  • Vollständige Unterstützung für asynchronen Input/Output.
  • Das Argument BACK für MINLOC und MAXLOC wurde implementiert.
  • Die Funktionen FINDLOC und IS_CONTIGUOUS wurden implementiert.
  • Der Zugriffssyntax auf die Bestandteile komplexer Zahlen wurde implementiert: c%re und c%im;
  • Die Syntax str%len und a%kind wurde implementiert;
  • C-Deskriptoren und der Header ISO_Fortran_binding.h wurden implementiert;
  • Die Anforderungen an die Rückgabewerte der Funktionen MAX und MIN wurden gelockert, wenn eines der Argumente NaN ist;
  • Option hinzugefügt -fdec-include;
  • Eine neue Direktive wurde hinzugefügt BUILTIN.
libgccjit

Sonstiges

Eine Vielzahl von architektur- und betriebssystemspezifischen Änderungen.

Quelle: linux.org.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster