GCC (GNU Compiler Collection) 10.1, en større udgivelse af platformen, blev offentliggjort den 7. maj 2020 med højdepunkter inklusive C ++ 20-funktioner og C2X-sprogstøtte. C2X er den næste store revision af C-sproget, der forventes i 2022.
Udgivelsesnoter til GCC 10 viser, at en lang række C ++ 20-funktioner er blevet implementeret, herunder tilladelse til inline-samling i constexpr-funktioner og udvidelse af strukturerede bindinger. Også for C ++ 20 tillader GCC 10 konverteringer til arrays med ukendt bund, tillader triviel standardinitialisering i constexpr-sammenhænge, tilføjer constinit
nøgleord og udfasetflygtige
nøgleord.
For C2X, den kommende revision af ISO C-standarden, understøttes flere funktioner med syntaksen-std = c2x
og -std + gnu2x
. Blandt disse er strftime
format kontrol understøtter % OB
og % Ob
formater og UTF-8 karakterkonstanter ved hjælp af u8 '' syntaksen.
GCC, der har eksisteret i mere end 33 år, inkluderer frontendere og biblioteker til C, C ++, Fortran, Ada, Go og D. En bulletin er blevet sendt til portering til GCC 10. Andre nye funktioner i GCC 10.1 inkluderer
- Indbyggede funktioner er tilføjet, inklusive en
has_builtin
preprocessor-operatør, der kan bruges til at spørge support til indbyggede funktioner leveret af GCC og andre compilere, der understøtter det. - Kommandomuligheder er tilføjet. Disse inkluderer
-falllokation-dce
, for at fjerne unødvendige par afny
ogslet
operatører og-fanalyzer
, for at aktivere et nyt statiske analysepassage og tilhørende advarsler. Sidstnævnte mulighed skal betragtes som i eksperimentel fase. - Interprocedurelle optimeringsforbedringer blev foretaget. Disse inkluderer genimplementering af de interprocedurelle skalære udskiftninger af aggregater (IPA-SRA), der blev genimplementeret for at arbejde på link-tid. IPA-SRA kan nu også fjerne computing og returnere ubrugte returværdier.
- Forbedringer af optimering af linktid inkluderer en ny binær
ito-dump
. Programmet kan dumpe forskellige oplysninger om en LTObyte
objektfil. - Der er foretaget profildrevne optimeringsforbedringer, herunder forbedring af profilvedligeholdelse under kompilering og varm / kold partitionering.
- For C-familien er
adgang
funktion ogtype
attribut er tilføjet for at beskrive, hvordan en funktion får adgang til objekter, der sendes til den ved hjælp af markør eller reference, og for at knytte sådanne argumenter til heltalargumenter, der angiver objektstørrelse. Attributten bruges til at muliggøre detektering af ugyldige adganger med brugerdefinerede funktioner. Der er også nye advarsler og forbedringer af eksisterende advarsler. En advarsel,-Wzero-længde-grænser
advarer om adgang til elementer i nul-længde-arrays, der kan overlappe andre medlemmer af det samme objekt. - En ABI-inkompatibilitet mellem C ++ 14 og C ++ 17 blev rettet. På nogle mål sendes en klasse med et underobjekt i nul størrelse forkert, når de kompileres som C ++ 17 eller C ++ 20.