3. mai toimus GCC 9.1 esimene avalik versioon.
See sisaldab mitmeid olulisi parandusi ja lisandeid vÔrreldes kaheksanda
versiooniga.
Ăldised muudatused
Valikud
- KĂ€skude, mis vĂ”tavad suuruse vastu, toetavad nĂŒĂŒd 64-bitiseid vÀÀrtusi ja sufikseid suuruse nĂ€itamiseks;
- Lisatud on vĂ”imalus -flive-patching, et juhtida optimeerimisi, mis vĂ”ivad olla potentsiaalselt kahjulikud dĂŒnaamilise koodi vahetamiseks;
- Lisatud on valik âcompletion automaatse tĂ€iendamise toetamiseks kĂ€sureas;
- Kompilaatori diagnostika sisaldab nĂŒĂŒd rea numbreid (-fno-diagnostics-show-line-numbers) ja
teave tĂŒĂŒpide kohta (fno-diagnostics-show-labels); - Lisatud on vĂ”imalus -fdiagnostics-format=json diagnostika vĂ€ljundiks JSON formaadis;
- Valikud joondamise mÀÀramiseks (-falign-functions, nĂ€iteks) saavad nĂŒĂŒd kaht joondamisvĂ”imalust;
- Lisatud on valikud failide nimekirja filtreerimiseks (-fprofile-filter-files, -fprofile-exclude-files), mis allutatakse profiliisisalduse instrumenteerimisele;
- AddressSanitizer kasutab nĂŒĂŒd vĂ€henenud joondamist toimetundmatute ĂŒlekaalute puhul muutujate jaoks, mis on vĂ€ljendatud virnas;
- Mitmed tÀiustused vÀljundis -fopt-info;
- Lisatud on vÔimalus -fsave-optimization-record optimeerimisaruande salvestamiseks faili;
- Lisatud on vÔimalus -fipa-stack-alignment ja -fipa-reference-addressable.
Uued sisseehitatud funktsioonid
Uus atribuut
Teine
Mitmed parandused koodigeneratsioonis, mis on seotud:
- switch-konstruktsioonide genereerimisega;
- vaheprotseduuriliste optimeerimistega;
- optimeerimisega, mis pÔhineb profiliseerimisinfos;
- koosteetapiga optimeerimisega (LTO);
Samuti on gcov sisemine formaat nĂŒĂŒd JSON, ja uus valik âuse-hotness-colors lisab koodirea vĂ€rvimise sĂ”ltuvalt nende kasutamise sagedusest.
Keeled
Rakenduse kvaliteet ja tÀpsus OpenACC keeltes C, C++ ja Fortran jÀtkab paranemist.
C-sarnased keeled
- Osaline toetus OpenMP 5.0 on realiseeritud;
- Lisatud on funktsioon __builtin_convertvector;
- Lisatud on hoiatus -Waddress-of-packed-member;
- Mitmed parandused olemasolevates hoiatustes;
- Viga teate pane olevatest makrode vale arvu argumentide edastamisest sisaldab nĂŒĂŒd ka makro enda deklaratsiooni;
- Parandused Ôigekirja parandamise ettepanekutes.
C
- _Static_assert toetamine ĂŒhe argumendiga -std=c2x (tulevane standard C);
- Uus hoiatus -Wabsolute-value, mis tabab vale tĂŒĂŒpi argumente selliste funktsioonide nagu abs().
C++
- Uued hoiatuste: -Wdeprecated-copy,
-Winit-list-lifetime,
-Wredundant-move,
-Wpessimizing-move,
-Wclass-conversion; - Töötatakse vÀlja uusi vÔimalusi tulevasest standardist C++ 2a;
- Frontend salvestab nĂŒĂŒd tĂ€psema teabe mitmete lĂ€htekoodi elementide kohta, mis vĂ”imaldab diagnostikas kuvada detailsemat teavet;
- Parandatud diagnostikat ĂŒlekoormatud funktsioonide, binaarsete operaatorite, funktsioonikutsede ja formaati mÀÀravate stringide jaoks;
- MĂ”nede arenduskeskkondade poolt toetatud automaatsed parandused mitmete populaarsete vigade (puuduvad sulud, nimed, trĂŒkivigade jms) jaoks;
libstdc++
- C++17 rakendamine ei ole enam eksperimentaalne;
- Lisatud paralleelsed algoritmid, , , ja ei vaja enam -lstdc++fs;
- Parandatud eksperimentaalset tuge C++ 2a jaoks (, , std::bind_front jne);
- Toetatakse failivoogude avamist Windowsis, mille teed sisaldavad mĂ€rke, mis ĂŒletavad char-i piire;
- Alustav tugi jaoks Windowsis;
- Alustav tugi Networking TS.
D
D-keele versioon 2.076 on lisatud GCC-sse.
Fortran
- TĂ€ielik tugi asĂŒnkroonsele sisend-/vĂ€ljundile;
- Rakendatud BACK argument MINLOC ja MAXLOC jaoks;
- Rakendatud FINDLOC ja IS_CONTIGUOUS funktsioonid;
- Rakendatud sĂŒntaks ligipÀÀsuks kompleksnumberite koostisosadele: c%re ja c%im;
- Rakendatud sĂŒntaks str%len ja a%kind;
- Rakendatud C-deskriptorid ja pealkiri ISO_Fortran_binding.h;
- VĂ€hendatud nĂ”udeid MAX ja MIN funktsioonide tulemusele, kui ĂŒks argument on NaN;
- Lisatud on vÔimalus -fdec-include;
- Lisatud direktiiv BUILTIN.
libgccjit
- Lisatud on funktsioon gcc_jit_context_add_driver_option.
Teine
Palju arhitektuuri- ja operatsioonisĂŒsteemi spetsiifilisi muudatusi.
Allikas: linux.org.ru

