3. mája sa uskutočnilo prvé verejné vydanie deviatej verzie GCC: GCC 9.1.
Oproti ôsmemu obsahuje veľa významných vylepšení a doplnkov
verzia.
Všeobecné zmeny
Možnosti
- Príkazy, ktoré akceptujú veľkosť, teraz podporujú 64-bitové hodnoty a prípony na určenie veľkosti;
- Pridaná možnosť - flive-patching, na riadenie optimalizácií, ktoré sú potenciálne deštruktívne pre dynamickú náhradu kódu;
- Pridaná možnosť --completion na podporu automatického dokončovania v príkazovom prostredí;
- Diagnostika kompilátora teraz zahŕňa čísla riadkov (-fno-diagnostics-show-line-numbers) A
informácie o type (fno-diagnostics-show-labels); - Pridaná možnosť -fdiagnostics-format=json výstup diagnostiky vo formáte JSON;
- Možnosti určenia zarovnania (-falign-funkcienapríklad) teraz môže akceptovať niekoľko možností zarovnania;
- Pridané možnosti filtrovania zoznamu súborov (-fprofile-filter-files, -fprofile-exclude-files), ktoré sú inštrumentované profilovačom;
- AddressSanitizer teraz používa kompaktnejšie zarovnanie na zachytenie neplatných prístupov k premenným v zásobníku;
- Početné vylepšenia výstupu -fopt-info;
- Pridaná možnosť -fsave-optimization-record uložiť správu o optimalizácii do súboru;
- Pridaná možnosť -fipa-stack-alignment и -fipa-referenčná-adresovateľná.
Nové vstavané funkcie
Nový atribút
Ďalšie
Početné vylepšenia generovania kódu súvisiace s:
- generovanie konštruktov spínačov;
- medziprocedurálne optimalizácie;
- optimalizácia založená na profilovacích informáciách;
- optimalizácia v štádiu montáže (LTO);
Tiež interný formát gcov je teraz JSON a nová možnosť --použite-horúce-farby zahŕňa vyfarbenie riadkov kódu podľa toho, ako často sa používajú.
Jazyky
Kvalita a kompletnosť realizácie OpenACC jazyky C, C++ a Fortran sa neustále zlepšujú.
Jazyky podobné C
- Bola implementovaná čiastočná podpora pre OpenMP 5.0;
- Pridaná funkcia __builtin_convertvector;
- Pridané varovanie -Waddress-of-packed-member;
- Vylepšenia množstva existujúcich varovaní;
- Chybový text pri odovzdávaní nesprávneho počtu argumentov do makra teraz obsahuje deklaráciu samotného makra;
- Vylepšenia návrhov na opravu preklepov.
C
- Podporte _Static_assert s jedným argumentom pre -std=c2x (budúci štandard C);
- Nové varovanie -Absolútna hodnota, ktorý zachytáva nesprávny typ argumentu pre funkcie ako abs().
C + +
- Nové upozornenia: -Zastaraná kópia,
-Doživotný zoznam Winit,
-Wredundant- move,
-Wpesimizing- move,
-Wclass-konverzia; - Pracuje sa na implementácii nových funkcií z budúceho štandardu C++2a;
- Frontend teraz ukladá presnejšie informácie o množstve prvkov zdrojového kódu, čo umožňuje zobraziť podrobnejšie informácie v diagnostike;
- Vylepšená diagnostika pre preťažené funkcie, binárne operátory, volania funkcií a formátovacie reťazce;
- Pridané automatické opravy podporované niektorými vývojovými prostrediami pre množstvo populárnych chýb (chýbajúce zátvorky, menné priestory, preklepy atď.).
libstdc++
- Implementácia C++17 už nie je experimentálna;
- Pridané paralelné algoritmy, , , A už nevyžaduje -lstdc++fs;
- Vylepšená experimentálna podpora pre C++2a ( , , std::bind_front atď.);
- Podpora otvárania prúdov súborov v systéme Windows, ktorých cesty obsahujú znaky bez znakov;
- Počiatočná podpora v systéme Windows;
- Počiatočná podpora pre Networking TS.
D
Jazyková verzia D 2.076 je súčasťou GCC.
Fortran
- Plná podpora pre asynchrónne I/O;
- Implementovaný argument BACK pre MINLOC a MAXLOC;
- Implementované funkcie FINDLOC a IS_CONTIGOUS;
- Bola implementovaná syntax pre prístup ku komponentom komplexných čísel: c%re a c%im;
- Implementovaná syntax str%len a a%kind;
- Implementované C deskriptory a hlavička ISO_Fortran_binding.h;
- Uvoľnené požiadavky na výsledok funkcií MAX a MIN, keď jeden z argumentov je NaN;
- Pridaná možnosť -fdec-include;
- Pridaná smernica VSTAVANÝ.
libgccjit
- Pridaná funkcia gcc_jit_context_add_driver_option.
Ďalšie
Veľa zmien špecifických pre architektúru a OS.
Zdroj: linux.org.ru