2019. gada 3. maijā notika pirmā publiskā devītās GCC versijas izlaidums: GCC 9.1.
Tā satur daudzas būtiskas uzlabojumus un papildinājumus salīdzinājumā ar astoto
versiju.
Vispārīgas izmaiņas
Opcijas
- Komandas, kas pieņem lielumu, tagad atbalsta 64 bitu vērtības un sufiksus, lai norādītu izmēru;
- Pievienota opcija -flive-patching, lai kontrolētu optimizācijas, kas potenciāli ir destruktīvas dinamiskai koda nomaiņai;
- Pievienota opcija —completion, lai atbalstītu automātisko pabeigšanu komandrindā;
- Kompilatora diagnostika tagad ietver rindu numurus (-fno-diagnostics-show-line-numbers) un
informāciju par tipiem (fno-diagnostics-show-labels); - Pievienota opcija -fdiagnostics-format=json diagnostikas izvadē JSON formātā;
- Opcijas, lai norādītu izlīdzināšanu (-falign-functions, piemēram), tagad var pieņemt pāris izlīdzināšanas variantus;
- Pievienotas iespējas, lai filtrētu failu sarakstu (-fprofile-filter-files, -fprofile-exclude-files), kas tiek pakļauti profilerim;
- AddressSanitizer tagad izmanto kompakta izlīdzināšanu, lai noķertu nepareizas piekļuves vērtībām uz kaudzes;
- Daudzi uzlabojumi izvadē -fopt-info;
- Pievienota opcija -fsave-optimization-record lai saglabātu optimizāciju pārskatu failā;
- Pievienota opcija -fipa-stack-alignment un -fipa-reference-addressable.
Jaunas iebūvētas funkcijas
Jauns atribūts
- copy.
Cits
Daudzi uzlabojumi koda ģenerēšanā saistībā ar:
- switch konstrukciju ģenerēšanu;
- starpproduktīvu optimizāciju;
- optimizāciju, kas balstīta uz profilu informāciju;
- optimizāciju kompilācijas posmā (LTO);
Tāpat tagad iekšējais gcov formāts ir JSON, un jaunā opcija --use-hotness-colors ietver koda rindu krāsošanu atkarībā no to lietošanas biežuma.
Valodas
Kvalitāte un īstenojamība OpenACC valodās C, C++ un Fortran turpina uzlaboties.
C līdzīgas valodas
- Daļēja OpenMP 5.0 atbalsta īstenošana;
- Pievienots funkcija __builtin_convertvector;
- Pievienots brīdinājums -Waddress-of-packed-member;
- Uzlabojumi vairākos esošajos brīdinājumos;
- Kļūdas teksts, pārsniedzot nepareizo argumentu skaitu makrosā, tagad ietver paša makrosa deklarāciju;
- Uzlabojumi pareizrakstības labojumu ieteikumos.
C
- Atbalsts _Static_assert ar vienu argumentu -std=c2x (nākotnes C standarts);
- Jauns brīdinājums -Wabsolute-value, kas noķer nepareiza tipa argumentus tādām funkcijām kā abs().
C++
- Jaunas brīdinājumi: -Wdeprecated-copy,
-Winit-list-lifetime,
-Wredundant-move,
-Wpessimizing-move,
-Wclass-conversion; - Tiek veikts darbs pie jaunu iespēju īstenošanas no nākotnes standarta C++ 2a;
- Frontend tagad saglabā precīzāku informāciju par virkni avota koda elementu, ļaujot attēlot detalizētāku informāciju diagnostikā;
- Uzlabota diagnostika pārslodzītām funkcijām, binārajiem operatoriem, funkciju izsaukumiem un formāta virknēm;
- Pievienoti automātiskie labojumi, ko atbalsta dažas izstrādes vides, daudziem populāriem kļūdu gadījumiem (trūkstošas iekavas, nosaukumu telpas, drukas kļūdas utt.).
libstdc++
- C++17 īstenošana vairs nav eksperimentāla;
- Pievienoti paralēlie algoritmi, , , un vairs neprasa -lstdc++fs;
- Uzlabota eksperimentālā atbalsta C++ 2a ( , , std::bind_front utt.);
- Atbalsts failu plūsmu atvēršanai Windows, kuru ceļi satur simbolus, kas pārsniedz char;
- Sākotnējais atbalsts Windows;
- Sākotnējais atbalsts Networking TS.
D
D valodas versija 2.076 ir iekļauta GCC sastāvā.
Fortran
- Pilnīgs asinhrono ievades/izvades atbalsts;
- Izdoti argumenti BACK MINLOC un MAXLOC;
- Ieviestas funkcijas FINDLOC un IS_CONTIGUOUS;
- Ieviests piekļuves sintakse sastāvdaļām kompleksajiem skaitļiem: c%re un c%im;
- Ieviests piekļuves sintakse str%len un a%kind;
- Ieviesti C deskriptori un galvene ISO_Fortran_binding.h;
- Atviegloti prasības funkciju MAX un MIN rezultātiem, kad viens no argumentiem ir NaN;
- Pievienota opcija -fdec-include;
- Pievienota direktīva BUILTIN.
libgccjit
- Pievienots funkcija gcc_jit_context_add_driver_option.
Cits
Liels skaits arhitektūras un OS specifisku izmaiņu.
Avots: linux.org.ru

