Május 3-án bemutatták a GCC kilencedik verziójának első nyilvános kiadását: GCC 9.1.
Ez számos jelentős fejlesztést és kiegészítést tartalmaz a nyolcadik verzióhoz képest.
verzióval.
Általános változások
Opciók
- A méretet megadó parancsok mostantól támogatják a 64-bites értékeket és a méret megadására szolgáló utótagokat;
- Bevezetésre került egy új opció, -flive-patching, amely az optimizálások kezelésére szolgál, amelyek potenciálisan destruktívak a dinamikus kódcserére;
- Bevezetésre került a —completion opció az automatikus kiegészítés támogatására a parancssorban;
- A fordító diagnosztikái mostantól tartalmazzák a sorok számát (-fno-diagnostics-show-line-numbers, ennek eredményeként a lekérdezések olyan formát öltenek, mint a fent említett.
típusinformációval (fno-diagnostics-show-labels); - Bevezetésre került egy új opció, -fdiagnostics-format=json a diagnosztikák JSON formátumban történő megjelenítéséhez;
- Ezek az opciók lehetővé teszik a kerekítés megadását (-falign-functions, például) most már pár különböző kerekítési lehetőséget is elfogadhatnak;
- Új opciók kerültek bevezetésre a fájllista szűrésére (-fprofile-filter-files, -fprofile-exclude-files), amelyek a profilerszköz általi instrumentálásnak vannak kitéve;
- Az AddressSanitizer mostantól kompaktabb kerekítést alkalmaz, hogy észlelje a hibás hivatkozásokat a verembeli változókra;
- Számos fejlesztés a kimenetben -fopt-info;
- Bevezetésre került egy új opció, -fsave-optimization-record az optimalizálási jelentés fájlba történő mentéséhez;
- Bevezetésre került egy új opció, -fipa-stack-alignment és -fipa-reference-addressable.
Új beépített funkciók
Új attribútum
Egyéb
Számos kódgenerálási fejlesztés, amely kapcsolódik a:
- switch szerkezetek generálásához;
- interprocedurális optimalizálásokhoz;
- profilinformációk alapján történő optimalizáláshoz;
- build fázisbeli optimalizálás (LTO);
Most a gcov belső formátuma is JSON, az új opció pedig —use-hotness-colors a kód sorok színezését a használati gyakoriság függvényében aktiválja.
Nyelvek
Az OpenACC megvalósításának minősége és teljessége C, C++ és Fortran nyelvekben folytatódik. C-szerű nyelvek
A OpenMP 5.0 részleges támogatása megvalósult;
- __builtin_convertvector
- Hozzáadva: Új figyelmeztetés került bevezetésre;
- -Waddress-of-packed-member Fejlesztések a meglévő figyelmeztetések számos területén;;
- A makrókhoz adott helytelen argumentumok átadása esetén a hibaüzenet mostantól tartalmazza magának a makrónak a deklarációját;
- Fejlesztések a helyesírási javaslatokban.
- _Static_assert támogatás egyetlen argumentummal -std=c2x számára (jövőbeli C szabvány);
C
- Új figyelmeztetés
- -Wabsolute-value , amely a nem megfelelő argumentum típust észleli olyan funkciók esetén, mint az abs().Új figyelmeztetések:
C++
- -Wdeprecated-copy -Winit-list-lifetime,
-Wredundant-move,
-Wredundant-move,
-Wpessimizing-move,
-Wclass-conversion; - Folyamatban van az új lehetőségek megvalósítása a jövőbeli szabványból C++ 2a;
- A frontend most pontosabb információkat tárol a forráskód bizonyos elemeiről, ami lehetővé teszi a részletesebb diagnosztikai információk megjelenítését;
- Javított diagnosztikák túlterhelt függvények, bináris operátorok, függvényhívások és formátumot megadó stringek esetén;
- Néhány fejlesztési környezet által támogatott automatikus javítások kerültek hozzáadásra népszerű hibákhoz (hiányzó zárójelek, névterek, elgépelések stb.).
libstdc++
- A C++17 megvalósítása már nem kísérleti;
- Párhuzamos algoritmusok, <execution>, <memory_resource> hozzáadva, és a <filesystem> már nem igényli a -lstdc++fs-t;
- Javított kísérleti támogatás a C++ 2a-hoz (<bit>, <version>, std::bind_front stb.);
- Támogatás a fájlok streamelésére Windows alatt, ahol az elérési út karakterei túllépik a char határait;
- Kezdeti támogatás a <filesystem>-hoz Windows alatt;
- Kezdeti támogatás a Networking TS-hez.
D
A D nyelv 2.076 verziója belekerült a GCC-be.
Fortran
- Teljes támogatás aszinkron bemenet/kimenet esetén;
- A BACK argumentum megvalósítva a MINLOC és MAXLOC számára;
- A FINDLOC és IS_CONTIGUOUS funkciók megvalósítva;
- Megvalósítva a komplex számok összetevőihez való hozzáférés szintaxisa: c%re és c%im;
- Megvalósítva a str%len és a%kind szintaxisa;
- Megvalósítva a C-deszkriptorok és az ISO_Fortran_binding.h fejléc;
- A MAX és MIN függvények eredményére vonatkozó követelmények csökkentve, amikor az egyik argumentum NaN;
- Bevezetésre került egy új opció, -fdec-include;
- Hozzáadva egy direktíva BUILTIN.
libgccjit
- Hozzáadva: gcc_jit_context_add_driver_option.
Egyéb
Számos architektúra- és OS-specifikus változtatás.
Forrás: linux.org.ru

