GCC 9.1


GCC 9.1

Op 3 mei vond de eerste publieke release plaats van de negende versie van GCC: GCC 9.1.
Het bevat veel belangrijke verbeteringen en toevoegingen ten opzichte van de achtste
versie.

Algemene wijzigingen

Opties
Nieuwe ingebouwde functies
Nieuw attribuut
Ander

Talrijke verbeteringen voor het genereren van code met betrekking tot:

  • genereren van schakelconstructies;
  • interprocedurele optimalisaties;
  • optimalisatie op basis van profileringsinformatie;
  • optimalisatie in de assemblagefase (LTO);

Ook het interne formaat van gcov is nu JSON, en de nieuwe optie --gebruik-hotness-kleuren omvat het kleuren van coderegels op basis van hoe vaak ze worden gebruikt.

Talen

Kwaliteit en volledigheid van de uitvoering OpenACC de talen C, C++ en Fortran blijven verbeteren.

C-achtige talen
  • Gedeeltelijke ondersteuning voor OpenMP 5.0 is geïmplementeerd;
  • Functie toegevoegd __ingebouwde_convertvector;
  • Waarschuwing toegevoegd -Wadadres-van-verpakt-lid;
  • Verbeteringen aan een aantal bestaande waarschuwingen;
  • De fouttekst bij het doorgeven van het verkeerde aantal argumenten aan een macro bevat nu de declaratie van de macro zelf;
  • Verbeteringen aan suggesties voor typfoutcorrectie.
C
  • Ondersteun _Static_assert met één argument voor -std=c2x (toekomstige C-standaard);
  • Nieuwe waarschuwing -Wabsolute-waarde, die het verkeerde argumenttype opvangt voor functies zoals abs().
C + +
  • Nieuwe waarschuwingen: -Wdeprecated-kopie,
    -Winit-lijst-levensduur,
    -Wredundant-zet,
    -Wpessimizing-zet,
    -Wclass-conversie;
  • Er wordt gewerkt aan de implementatie van nieuwe functies van de toekomstige standaard C++2a;
  • De frontend slaat nu nauwkeurigere informatie op over een aantal broncode-elementen, waardoor u meer gedetailleerde informatie in de diagnostiek kunt weergeven;
  • Verbeterde diagnostiek voor overbelaste functies, binaire operators, functieaanroepen en formatstrings;
  • Automatische oplossingen toegevoegd die door sommige ontwikkelomgevingen worden ondersteund voor een aantal populaire fouten (ontbrekende haakjes, naamruimten, typefouten, enz.).
libstdc++
  • De C++17-implementatie is niet langer experimenteel;
  • Parallelle algoritmen toegevoegd, , , A vereist niet langer -lstdc++fs;
  • Verbeterde experimentele ondersteuning voor C++2a ( , , std::bind_front, enz.);
  • Ondersteuning voor het openen van bestandsstreams op Windows waarvan de paden niet-char-tekens bevatten;
  • Initiële ondersteuning op Windows;
  • Initiële ondersteuning voor Networking TS.
D

D-taalversie 2.076 is opgenomen in GCC.

Fortran
  • Volledige ondersteuning voor asynchrone I/O;
  • Geïmplementeerd BACK-argument voor MINLOC en MAXLOC;
  • FINDLOC- en IS_CONTIGOUS-functies geïmplementeerd;
  • De syntaxis voor toegang tot de componenten van complexe getallen is geïmplementeerd: c%re en c%im;
  • Geïmplementeerde syntaxis str%len en a%kind;
  • Geïmplementeerde C-descriptors en ISO_Fortran_binding.h header;
  • Versoepelde vereisten voor het resultaat van de MAX- en MIN-functies wanneer een van de argumenten NaN is;
  • Optie toegevoegd -fdec-include;
  • Richtlijn toegevoegd GEBOUWD.
libgccjit

Ander

Veel architectuur- en OS-specifieke veranderingen.

Bron: linux.org.ru

Voeg een reactie