Ar Fai 3, cyhoeddwyd y nawfed fersiwn o GCC am y tro cyntaf: GCC 9.1.
Mae ynddo lawer o welliantau ac ychwanegiadau sylweddol o'i gymharu â'r wythfed
fersiwn.
Newidiadau cyffredinol
Opsiynau
- Mae gorchmynion sy'n derbyn maint bellach yn cefnogi gwerthoedd 64-bit ac ôl-ddodiaid i nodi maint;
- Ychwanegwyd opsiwn -flive-clytio, i reoli optimizations a allai fod yn ddinistriol i amnewid cod deinamig;
- Ychwanegwyd --cwblhau opsiwn i gefnogi auto-gwblhau yn y plisgyn gorchymyn;
- Mae diagnosteg casglwr bellach yn cynnwys rhifau llinell (-fno-diagnosteg-dangos-llinell-rhifau) A
teipio gwybodaeth (fno-diagnosteg-sioe-labeli); - Ychwanegwyd opsiwn -fdiagnostics-format=json i allbynnu diagnosteg mewn fformat JSON;
- Opsiynau ar gyfer pennu aliniad (-ffalign-swyddogaethau, er enghraifft) nawr yn gallu derbyn cwpl o opsiynau alinio;
- Ychwanegwyd opsiynau ar gyfer hidlo'r rhestr o ffeiliau (-fprofile-filter-files, -fprofile-exclude-files), sy'n cael eu harfogi gan y proffiliwr;
- Mae AddressSanitizer bellach yn defnyddio aliniad mwy cryno i ddal mynediadau annilys i newidynnau ar y pentwr;
- Gwelliannau allbwn niferus -fopt-gwybodaeth;
- Ychwanegwyd opsiwn -fsave-optimeiddio-cofnod i gadw'r adroddiad optimeiddio i ffeil;
- Ychwanegwyd opsiwn -fipa-stack-aliniad и -fipa-cyfeiriad-cyfeiriad.
Nodweddion adeiledig newydd
Priodoledd newydd
eraill
Gwelliannau cynhyrchu cod niferus yn ymwneud â:
- cynhyrchu switshis;
- optimeiddio rhyng-weithdrefnol;
- optimeiddio yn seiliedig ar wybodaeth broffilio;
- optimeiddio yn y cam cydosod (LTO);
Hefyd fformat mewnol gcov bellach yw JSON a'r opsiwn newydd --defnyddio-hotness-lliwiau yn cynnwys lliwio llinellau cod yn seiliedig ar ba mor aml y cânt eu defnyddio.
Ieithoedd
Ansawdd a chyflawnder y gweithredu AgoredACC mae'r ieithoedd C, C++, a Fortran yn parhau i wella.
Ieithoedd tebyg i C
- Mae cefnogaeth rannol ar gyfer OpenMP 5.0 wedi'i weithredu;
- Nodwedd ychwanegol __builtin_convertvector;
- Ychwanegwyd rhybudd -Waddress-of-packed-aelod;
- Gwelliannau i nifer o rybuddion presennol;
- Mae'r testun gwall wrth drosglwyddo'r nifer anghywir o ddadleuon i macro bellach yn cynnwys datganiad y macro ei hun;
- Gwelliannau i awgrymiadau cywiro teipo.
C
- Cefnogi _Static_assert gydag un ddadl ar gyfer -std = c2x (safon C yn y dyfodol);
- Rhybudd newydd -Wabsolute-gwerth, sy'n dal y math dadl anghywir ar gyfer swyddogaethau fel abs().
C + +
- Rhybuddion newydd: -Wdeprecated-copi,
-Winit-rhestr-oes,
-Wredundant-symud,
-Wpessimizing-symud,
-Wclass-trosi; - Mae gwaith yn mynd rhagddo i weithredu nodweddion newydd o safon y dyfodol C++2a;
- Mae'r frontend bellach yn storio gwybodaeth fwy cywir am nifer o elfennau cod ffynhonnell, sy'n eich galluogi i arddangos gwybodaeth fanylach mewn diagnosteg;
- Gwell diagnosteg ar gyfer swyddogaethau gorlwytho, gweithredwyr deuaidd, galwadau swyddogaeth, a llinynnau fformat;
- Ychwanegwyd atgyweiriadau awtomatig, wedi'u hategu gan rai amgylcheddau datblygu, ar gyfer nifer o wallau poblogaidd (cromfachau coll, bylchau enwau, teipiau, ac ati).
libstdc++
- Nid yw gweithrediad C++17 bellach yn arbrofol;
- Ychwanegwyd algorithmau cyfochrog, , , A nid oes angen -lstdc++fs mwyach;
- Gwell cefnogaeth arbrofol ar gyfer C++2a ( , , std::bind_front, ac ati);
- Cefnogaeth ar gyfer agor ffrydiau ffeil ar Windows y mae eu llwybrau'n cynnwys nodau nad ydynt yn golosg;
- Cefnogaeth gychwynnol ar Windows;
- Cefnogaeth gychwynnol ar gyfer Rhwydweithio TS.
D
Mae fersiwn iaith D 2.076 wedi'i chynnwys yn GCC.
Fortran
- Cefnogaeth lawn i I/O asyncronaidd;
- Gweithredu dadl BACK ar gyfer MINLOC a MAXLOC;
- Gweithredu swyddogaethau FINDLOC ac IS_CONTIGOUS;
- Gweithredwyd y gystrawen ar gyfer cyrchu cydrannau rhifau cymhlyg: c%re a c%im;
- Gweithredwyd cystrawen str%len a%math;
- Wedi gweithredu disgrifyddion C a phennawd ISO_Fortran_binding.h;
- Mae'r gofynion ar gyfer canlyniad y swyddogaethau MAX a MIN wedi'u llacio pan mai NaN yw un o'r dadleuon;
- Ychwanegwyd opsiwn -fdec-cynnwys;
- Ychwanegwyd y Gyfarwyddeb BUILTIN.
libgccjit
- Nodwedd ychwanegol gcc_jit_context_add_driver_option.
eraill
Llawer o newidiadau pensaernïaeth ac OS-benodol.
Ffynhonnell: linux.org.ru