Programování

Překladače řady GCC 10 přicházejí s velkým upgradem

GCC (GNU Compiler Collection) 10.1, hlavní vydání platformy, bylo vydáno 7. května 2020 s hlavními prvky včetně funkcí C ++ 20 a jazykové podpory C2X. C2X je další významná revize jazyka C, která má vyjít v roce 2022.

Poznámky k verzi GCC 10 ukazují, že bylo implementováno velké množství funkcí v C ++ 20, včetně povolení inline-sestavení ve funkcích constexpr a rozšíření strukturovaných vazeb. Také pro C ++ 20 umožňuje GCC 10 převody na pole neznámé vazby, umožňuje triviální výchozí inicializaci v kontextech constexpr, přidává Constinit klíčové slovo a odmítánestálý klíčové slovo.

U C2X, nadcházející revize normy ISO C, je pomocí syntaxe podporováno několik funkcí-std = c2x a -std + gnu2x. Mezi nimi jsou strftime kontrola formátu podporující % OB a % Ob formáty a znakové konstanty UTF-8 pomocí syntaxe u8 ''.

GCC, který existuje již více než 33 let, zahrnuje rozhraní frontend a knihovny pro C, C ++, Fortran, Ada, Go a D. K portování na GCC 10 byl zveřejněn bulletin. Mezi další nové funkce v GCC 10.1 patří

  • Byly přidány integrované funkce, včetně a has_builtin operátor preprocesoru, který lze použít k dotazování podpory pro vestavěné funkce poskytované GCC a dalšími kompilátory, které jej podporují.
  • Byly přidány možnosti příkazů. Tyto zahrnují-fallocation-dce, k odstranění nepotřebných párů Nový a vymazat provozovatelé a -fanalyzer, k povolení nového povolení statické analýzy a souvisejících varování. Druhá možnost by měla být považována za experimentální fázi.
  • Vylepšena byla meziprocesová optimalizace. Patří mezi ně re-implementace inter-procedurálního skalárního nahrazení agregátů (IPA-SRA), které bylo znovu implementováno, aby fungovalo v čase propojení. IPA-SRA nyní může také odebrat výpočet a vrátit nepoužité návratové hodnoty.
  • Vylepšení optimalizace link-time zahrnují nový binární soubor skládka ito. Program může vypsat různé informace o LTO byte soubor objektu.
  • Byly provedeny vylepšení optimalizace založené na profilu, včetně zlepšení údržby profilu během kompilace a dělení za studena.
  • Pro rodinu C, přístup funkce a typ přidán atribut, který popisuje, jak funkce přistupuje k objektům, které jí byly předány ukazatelem nebo odkazem, a přidružit takové argumenty k celočíselným argumentům označujícím velikost objektu. Atribut se používá k povolení detekce neplatných přístupů pomocí uživatelem definovaných funkcí. Existují také nová varování a vylepšení stávajících upozornění. Jedno varování, -Hranice délky wzera, varuje před přístupem k prvkům polí nulové délky, která by se mohla překrývat s ostatními členy stejného objektu.
  • Byla opravena nekompatibilita ABI mezi C ++ 14 a C ++ 17. Na některých cílech by třída s podobjektem nulové velikosti byla při kompilaci jako C ++ 17 nebo C ++ 20 předána nesprávně.
$config[zx-auto] not found$config[zx-overlay] not found