GCC 9.1


GCC 9.1

Den 3. maj fandt den første offentlige udgivelse af den niende version af GCC sted: GCC 9.1.
Den indeholder mange væsentlige forbedringer og tilføjelser i forhold til den ottende
version.

Generelle ændringer

Optioner
Nye indbyggede funktioner
Ny egenskab
Andet

Adskillige kodegenereringsforbedringer relateret til:

  • generering af switch-konstruktioner;
  • inter-procedurelige optimeringer;
  • optimering baseret på profileringsoplysninger;
  • optimering på montagestadiet (LTO);

Også gcovs interne format er nu JSON, og den nye mulighed --brug-varme-farver involverer farvelægning af kodelinjer baseret på, hvor ofte de bruges.

Sprog

Kvalitet og fuldstændighed af implementering ÅbnACC sprogene C, C++ og Fortran fortsætter med at forbedre sig.

C-lignende sprog
  • Delvis understøttelse af OpenMP 5.0 er blevet implementeret;
  • Tilføjet funktion __builtin_convertvector;
  • Tilføjet advarsel -Vaddress-of-packed-medlem;
  • Forbedringer af en række eksisterende advarsler;
  • Fejlteksten, når du sender det forkerte antal argumenter til en makro, inkluderer nu erklæringen af ​​selve makroen;
  • Forbedringer af forslag til rettelse af stavefejl.
C
  • Understøtter _Static_assert med ét argument for -std=c2x (fremtidig C-standard);
  • Ny advarsel -Wabsolut-værdi, som fanger den forkerte argumenttype for funktioner som abs().
C + +
  • Nye advarsler: -Uforældet-kopi,
    - Winit-liste-levetid,
    - Overflødigt træk,
    -Wpessimizing-move,
    -Wclass-konvertering;
  • Der arbejdes på at implementere nye funktioner fra den fremtidige standard C++2a;
  • Frontenden gemmer nu mere præcis information om en række kildekodeelementer, hvilket giver dig mulighed for at vise mere detaljeret information i diagnostik;
  • Forbedret diagnostik for overbelastede funktioner, binære operatorer, funktionskald og formatstrenge;
  • Tilføjet automatiske rettelser understøttet af nogle udviklingsmiljøer til en række populære fejl (manglende parenteser, navnerum, tastefejl osv.).
libstdc++
  • C++17-implementeringen er ikke længere eksperimentel;
  • Tilføjet parallelle algoritmer, , , A kræver ikke længere -lstdc++fs;
  • Forbedret eksperimentel understøttelse af C++2a ( , , std::bind_front osv.);
  • Understøttelse af åbning af filstrømme på Windows, hvis stier indeholder ikke-char-tegn;
  • Indledende støtte på Windows;
  • Indledende support til Networking TS.
D

D sprogversion 2.076 er inkluderet i GCC.

Fortran
  • Fuld understøttelse af asynkron I/O;
  • Implementeret BACK argument for MINLOC og MAXLOC;
  • Implementeret FINDLOC og IS_CONTIGOUS funktioner;
  • Syntaksen til at få adgang til komponenterne i komplekse tal er blevet implementeret: c%re og c%im;
  • Implementeret syntaks str%len og a%kind;
  • Implementerede C-deskriptorer og ISO_Fortran_binding.h header;
  • Lempede krav til resultatet af funktionerne MAX og MIN, når et af argumenterne er NaN;
  • Tilføjet mulighed -fdec-inkluderer;
  • Direktiv tilføjet INDBYGGET.
libgccjit

Andet

Mange arkitektur- og OS-specifikke ændringer.

Kilde: linux.org.ru

Tilføj en kommentar