GCC 9.1


GCC 9.1

Den 3 maj ägde den första offentliga utgåvan av den nionde versionen av GCC rum: GCC 9.1.
Den innehåller många betydande förbättringar och tillägg jämfört med den åttonde
version.

Allmänna förändringar

Alternativ
Nya inbyggda funktioner
Nytt attribut
Andra

Många förbättringar av kodgenerering relaterade till:

  • generering av switchkonstruktioner;
  • interprocedurmässiga optimeringar;
  • optimering baserad på profileringsinformation;
  • optimering vid monteringsstadiet (LTO);

Även gcovs interna format är nu JSON, och det nya alternativet --använd-hethet-färger innebär färgning av kodrader baserat på hur ofta de används.

Språk

Kvalitet och fullständighet i genomförandet ÖppnaACC Språken C, C++ och Fortran fortsätter att förbättras.

C-liknande språk
  • Partiellt stöd för OpenMP 5.0 har implementerats;
  • Funktion tillagd __builtin_convertvector;
  • Tillagd varning -Waddress-of-packed-medlem;
  • Förbättringar av ett antal befintliga varningar;
  • Feltexten när fel antal argument skickas till ett makro inkluderar nu deklarationen av själva makrot;
  • Förbättringar av förslag till stavfel.
C
  • Stöd _Static_assert med ett argument för -std=c2x (framtida C-standard);
  • Ny varning -Wabsolut-värde, som fångar fel argumenttyp för funktioner som abs().
C + +
  • Nya varningar: -Föråldrad kopia,
    - Winit-lista-livstid,
    -Obehövligt drag,
    -Wpessimizing-move,
    -Wclass-konvertering;
  • Arbete pågår med att implementera nya funktioner från den framtida standarden C++2a;
  • Frontend lagrar nu mer exakt information om ett antal källkodselement, vilket gör att du kan visa mer detaljerad information i diagnostik;
  • Förbättrad diagnostik för överbelastade funktioner, binära operatorer, funktionsanrop och formatsträngar;
  • Lade till automatiska korrigeringar som stöds av vissa utvecklingsmiljöer för ett antal populära fel (saknade parenteser, namnutrymmen, stavfel, etc.).
libstdc ++
  • C++17-implementeringen är inte längre experimentell;
  • Lade till parallella algoritmer, , , A kräver inte längre -lstdc++fs;
  • Förbättrat experimentellt stöd för C++2a ( , , std::bind_front, etc.);
  • Stöd för att öppna filströmmar på Windows vars sökvägar innehåller tecken som inte är tecken;
  • Inledande stöd på Windows;
  • Initialt stöd för Networking TS.
D

D språkversion 2.076 ingår i GCC.

Fortran
  • Fullt stöd för asynkron I/O;
  • Implementerat BACK-argument för MINLOC och MAXLOC;
  • Implementerade funktionerna FINLOC och IS_CONTIGOUS;
  • Syntaxen för att komma åt komponenterna i komplexa tal har implementerats: c%re och c%im;
  • Implementerad syntax str%len och a%kind;
  • Implementerade C-deskriptorer och ISO_Fortran_binding.h header;
  • Släppta krav på resultatet av funktionerna MAX och MIN när ett av argumenten är NaN;
  • Tillagt alternativ -fdec-inkludera;
  • Direktivet har lagts till INBYGGT.
libgccjit

Andra

Många arkitektur- och OS-specifika förändringar.

Källa: linux.org.ru

Lägg en kommentar