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

