3. mai toimus GCC üheksanda versiooni avalik väljaanne: GCC 9.1.
See sisaldab palju olulisi täiustusi ja lisandeid võrreldes eelmise
versiooniga.
Üldised muudatused
Valikud
- Suurust arvestavad käsud toetavad nüüd 64-bitiseid väärtusi ja suuruse näitamiseks sufixe;
- Lisatud valik -flive-patching, et hallata potentsiaalselt destruktiivseid optimeerimisi dünaamilise koodi asendamise jaoks;
- Lisatud on --completion valik, et toetada automaatset täiendamist käsureas;
- Kompilaatori diagnostika sisaldab nüüd ridade numbreid (-fno-diagnostics-show-line-numbers) ja
tüüpide teavet (-fno-diagnostics-show-labels); - Lisatud valik -fdiagnostics-format=json diagnostika väljund JSON formaadis;
- Joondamise valikute (-falign-functions, näiteks) nüüd suudavad vastu võtta mitu joondamisvarianti;
- Failide loendi filtreerimise võimalused (-fprofile-filter-files, -fprofile-exclude-files), mis suurendavad profiliimisel vajalikke faile;
- AddressSanitizer kasutab nüüd kompaktsemat joondust, et tuvastada vale juurdepääs muutujatele kuhjas;
- Mitmeid täiustusi väljundis -fopt-info;
- Lisatud valik -fsave-optimization-record optimeerimiste aruande salvestamiseks faili;
- Lisatud valik -fipa-stack-alignment ja -fipa-reference-addressable.
Uued sisseehitatud funktsioonid
Uus atribuut
- copy.
Muu
Mitmed parendused koodigeneratsioonis, mis on seotud:
- switch-konstruktsioonide genereerimisega;
- vaheprotseduuriliste optimeerimistega;
- optimeerimisega, mis põhineb profiliseerimise teabel;
- optimiseerimisega siduri etapis (LTO);
Gcovi sisemine formaat on nüüd JSON ja uus valik --use-hotness-colors võimaldab koodiread värvida sageduse alusel, millega neid kasutatakse.
Keeled
Rakenduse kvaliteet ja täiuslikkus OpenACC keeltes C, C++ ja Fortran jätkuvalt paranevad.
C-sarnased keeled
- Osaline toetus OpenMP 5.0;
- Lisa funktsionaalsus __builtin_convertvector;
- Lisatud on hoiatus -Waddress-of-packed-member;
- Parandused mitmesugustes olemasolevates hoiatustes;
- Veakäskude tekst, kui makrosse antakse vale argumentide arvu, sisaldab nüüd makro enda deklaratsiooni;
- Parandused õigekirja paranduste ettepanekutes.
C
- Toetatud on _Static_assert ühe argumendiga -std=c2x (tulevane C standard);
- Uus hoiatus -Wabsolute-value, mis tuvastab vale argumentide tüübi sellistele funktsioonidele nagu abs().
C++
- Uued hoiatused: -Wdeprecated-copy,
-Winit-list-lifetime,
-Wredundant-move,
-Wpessimizing-move,
-Wclass-conversion; - Tulevaste standardite uusimate funktsioonide rakendamine C++ 2a;
- Front-end säilitab nüüd täpsemat teavet mitmete algkoodi elementide kohta, mis võimaldab kuvada täpsemat teavet diagnostikas;
- Parandatud on diagnostika ületulevate funktsioonide, binaarsete operaatorite, funktsioonide ja vorminduse määrati stringide jaoks;
- Mõned arenduskeskkonnad on lisatud automaatsed parandused populaarsete vigade jaoks (puuduvad sulud, nimed, õigekirja vead jne).
libstdc++
- C++17 rakendamine ei ole enam eksperimentaalne;
- Lisatud on paralleelsed algoritmid, <execution>, <memory_resource>, ja <filesystem> ei vaja enam -lstdc++fs;
- Eksperimentaalne toetus C++ 2a jaoks (<bit>, <version>, std::bind_front jne) paranes;
- Toetatud on failide avamine Windowsis, mille teed sisaldavad sümboleid, mis ületavad chari;
- Algeline toetus <filesystem> Windowsis;
- Algeline toetus Networking TS.
D
D keele versioon 2.076 on saadud GCC-ga.
Fortran
- Täielik toetus asünkroonsele sisend-/väljundile;
- Argumendi BACK rakendamine MINLOC ja MAXLOC jaoks;
- FINDLOC ja IS_CONTIGUOUS funktsioonide rakendamine;
- Komplekssete arvude koostisosadele juurdepääsuv syntaks: c%re ja c%im;
- str%len ja a%kind juurdepääsuv syntaks;
- C deskriptorite ja ISO_Fortran_binding.h pealkirja rakendamine;
- NaN aritmeetika korral nõuded MAX ja MIN funktsioonide tulemustele on leebemaks muudetud;
- Lisatud valik -fdec-include;
- Lisatud direktiiv BUILTIN.
libgccjit
- Lisa funktsionaalsus gcc_jit_context_add_driver_option.
Muu
Palju arhitektuuri- ja OS-spetsiifilisi muudatusi.
Allikas: linux.org.ru

