3. května proběhlo první veřejné vydání deváté verze GCC: GCC 9.1.
Obsahuje mnoho významných vylepšení a doplňků oproti osmistovce
verze.
Obecné změny
Možnosti
- Příkazy, které přijímají velikost, nyní podporují 64bitové hodnoty a přípony pro určení velikosti;
- Přidána možnost -flive-patching,kontrolovat optimalizace, které jsou potenciálně destruktivní pro dynamickou,náhradu kódu;
- Přidána možnost --completion pro podporu automatického dokončování v příkazovém shellu;
- Diagnostika kompilátoru nyní zahrnuje čísla řádků (-fno-diagnostics-show-line-numbers) A
informace o typu (fno-diagnostics-show-labels); - Přidána možnost -fdiagnostics-format=json výstup diagnostiky ve formátu JSON;
- Možnosti pro určení zarovnání (-falign-funkce, například) nyní může přijmout několik možností zarovnání;
- Přidány možnosti pro filtrování seznamu souborů (-fprofile-filter-files, -fprofile-exclude-files), které jsou instrumentovány profilovačem;
- AddressSanitizer nyní používá kompaktnější zarovnání k zachycení neplatných přístupů k proměnným v zásobníku;
- Četná vylepšení výstupu -fopt-info;
- Přidána možnost -fsave-optimization-record uložit zprávu o optimalizaci do souboru;
- Přidána možnost -fipa-stack-alignment и -fipa-reference-adresovatelný.
Nové vestavěné funkce
Nový atribut
Další
Četná vylepšení generování kódu související s:
- generování konstrukcí přepínačů;
- meziprocedurální optimalizace;
- optimalizace na základě profilovacích informací;
- optimalizace ve fázi montáže (LTO);
Také interní formát gcov je nyní JSON a nová možnost --use-hotness-colors zahrnuje vybarvování řádků kódu podle toho, jak často se používají.
Jazyky
Kvalita a kompletnost realizace Otevřít ACC jazyky C, C++ a Fortran se neustále zlepšují.
jazyky podobné C
- Byla implementována částečná podpora pro OpenMP 5.0;
- Funkce přidána __builtin_convertvector;
- Přidáno varování -Waddress-of-packed-member;
- Vylepšení řady stávajících varování;
- Chybový text při předávání nesprávného počtu argumentů makru nyní obsahuje deklaraci samotného makra;
- Vylepšení návrhů oprav překlepů.
C
- Podporujte _Static_assert jedním argumentem pro -std=c2x (budoucí standard C);
- Nové varování -Wabsolutní-hodnota, který zachytí nesprávný typ argumentu pro funkce jako abs().
C + +
- Nová upozornění: -Wdeprecated-copy,
-Winit-list-lifetime,
-Wredundant-tah,
-Wpesimizing-tah,
-Wclass-konverze; - Pracuje se na implementaci nových funkcí z budoucího standardu C++2a;
- Frontend nyní ukládá přesnější informace o řadě prvků zdrojového kódu, což umožňuje zobrazit v diagnostice podrobnější informace;
- Vylepšená diagnostika přetížených funkcí, binárních operátorů, volání funkcí a formátovacích řetězců;
- Přidány automatické opravy podporované některými vývojovými prostředími pro řadu oblíbených chyb (chybějící závorky, jmenné prostory, překlepy atd.).
libstdc++
- Implementace C++17 již není experimentální;
- Přidány paralelní algoritmy, , , A již nevyžaduje -lstdc++fs;
- Vylepšená experimentální podpora pro C++2a ( , , std::bind_front atd.);
- Podpora pro otevírání proudů souborů v systému Windows, jejichž cesty obsahují jiné než znakové znaky;
- Počáteční podpora na Windows;
- Počáteční podpora pro Networking TS.
D
Jazyková verze D 2.076 je součástí GCC.
Fortran
- Plná podpora pro asynchronní I/O;
- Implementován argument BACK pro MINLOC a MAXLOC;
- Implementované funkce FINDLOC a IS_CONTIGOUS;
- Byla implementována syntaxe pro přístup ke komponentám komplexních čísel: c%re a c%im;
- Implementovaná syntaxe str%len a a%kind;
- Implementované C deskriptory a hlavička ISO_Fortran_binding.h;
- Uvolněné požadavky na výsledek funkcí MAX a MIN, když jeden z argumentů je NaN;
- Přidána možnost -fdec-include;
- Doplněna směrnice VESTAVĚNÝ.
libgccjit
- Funkce přidána gcc_jit_context_add_driver_option.
Další
Mnoho změn specifických pro architekturu a OS.
Zdroj: linux.org.ru