GCC (GNU Compiler Collection) 10.1, hlavné vydanie platformy, bolo zverejnené 7. mája 2020 s hlavnými funkciami vrátane funkcií v C ++ 20 a podpory jazyka C2X. C2X je ďalšia významná revízia jazyka C, ktorá má vyjsť v roku 2022.
Poznámky k vydaniu pre GCC 10 ukazujú, že bolo implementovaných veľké množstvo funkcií v C ++ 20 vrátane povolenia priameho zostavenia vo funkciách constexpr a rozšírenia štruktúrovaných väzieb. Aj pre C ++ 20 umožňuje GCC 10 prevody na polia s neznámou hranicou, umožňuje triviálnu predvolenú inicializáciu v kontextoch constexpr, dodáva konštinitíva
kľúčové slovo a zastáva podporuprchavý
kľúčové slovo.
Pre C2X, pripravovanú revíziu normy ISO C, je pomocou syntaxe podporovaných niekoľko funkcií-std = c2x
a -std + gnu2x
. Medzi nimi sú strftime
kontrola formátu podporujúca % OB
a % Ob
formáty a konštanty znakov UTF-8 pomocou syntaxe u8 ''.
GCC, ktoré existuje už viac ako 33 rokov, obsahuje klientske rozhrania a knižnice pre C, C ++, Fortran, Ada, Go a D. K portovaniu na GCC 10 bol zverejnený bulletin. Medzi ďalšie nové funkcie v GCC 10.1 patria
- Boli pridané vstavané funkcie vrátane a
has_builtin
operátor predprocesora, ktorý sa dá použiť na dopytovanie podpory pre vstavané funkcie poskytované GCC a inými kompilátormi, ktoré ju podporujú. - Boli pridané možnosti príkazov. Tie obsahujú
-fallocation-dce
, na odstránenie nepotrebných párovNový
avymazať
prevádzkovatelia a-fanalyzátor
, aby ste povolili nový prístup k statickej analýze a súvisiace varovania. Druhá možnosť by sa mala považovať za experimentálnu fázu. - Boli urobené vylepšenia medziprocesovej optimalizácie. Patrí medzi ne opätovná implementácia inter-procedurálneho skalárneho nahradenia agregátov (IPA-SRA), ktoré bolo opätovne implementované, aby fungovalo v čase prepojenia. IPA-SRA teraz môže tiež odstrániť výpočty a vracať nepoužité návratové hodnoty.
- Vylepšenia optimalizácie prepojenia zahŕňajú nový binárny súbor
skládka ito
. Program môže ukladať rôzne informácie o LTObajt
objektový súbor. - Boli urobené vylepšenia optimalizácie založené na profiloch, vrátane zlepšenia údržby profilu počas kompilácie a rozdelenia za studena.
- Pre rodinu C:
prístup
funkcie atypu
boli pridané atribúty na opis toho, ako funkcia pristupuje k objektom, ktoré jej boli odovzdané pomocou ukazovateľa alebo odkazu, a na priradenie takýchto argumentov k celočíselným argumentom označujúcim veľkosť objektu. Atribút sa používa na umožnenie detekcie neplatných prístupov pomocou funkcií definovaných používateľom. Existujú aj nové varovania a vylepšenia existujúcich varovaní. Jedno varovanie,-Hranice dĺžky wzera
, varuje pred prístupom k prvkom polí nulovej dĺžky, ktoré by sa mohli prekrývať s ostatnými členmi toho istého objektu. - Bola opravená nekompatibilita ABI medzi C ++ 14 a C ++ 17. Na niektoré ciele by bola trieda s podobjektom nulovej veľkosti odovzdaná nesprávne, ak by bola kompilovaná ako C ++ 17 alebo C ++ 20.