Op 3 Mei het die eerste openbare vrystelling van die negende weergawe van GCC plaasgevind: GCC 9.1.
Dit bevat baie beduidende verbeterings en toevoegings in vergelyking met die agtste
weergawe.
Algemene veranderinge
Opsies
- Opdragte wat grootte aanvaar ondersteun nou 64-bis waardes en agtervoegsels om grootte te spesifiseer;
- Bygevoeg opsie -flive-patching,om optimaliserings te beheer wat potensieel vernietigend is vir dinamiese,kodevervanging;
- Bygevoeg --voltooiing opsie om outo-voltooiing in die opdrag dop te ondersteun;
- Samestellerdiagnostiek sluit nou reëlnommers in (-fno-diagnostiek-wys-lyn-nommers) En
tik inligting (fno-diagnostiek-wys-etikette); - Bygevoeg opsie -fdiagnostics-format=json om diagnostiek in JSON-formaat uit te voer;
- Opsies om belyning te spesifiseer (-falign-funksies, byvoorbeeld) kan nou 'n paar belyningsopsies aanvaar;
- Bygevoeg opsies vir die filter van die lys lêers (-fprofiel-filter-lêers, -fprofiel-uitsluit-lêers), wat deur die profileerder geinstrument word;
- AddressSanitizer gebruik nou meer kompakte belyning om ongeldige toegang tot veranderlikes op die stapel op te vang;
- Talle uitsetverbeterings -fopt-inligting;
- Bygevoeg opsie -fsave-optimering-rekord om die optimaliseringsverslag in 'n lêer te stoor;
- Bygevoeg opsie -fipa-stapel-belyning и -fipa-verwysing-aanspreekbaar.
Nuwe ingeboude kenmerke
Nuwe kenmerk
Ander
Talle kodegenerering verbeterings wat verband hou met:
- generering van skakelaarkonstrukte;
- interprosedurele optimaliserings;
- optimalisering gebaseer op profileringsinligting;
- optimalisering by die monteerstadium (LTO);
Ook gcov se interne formaat is nou JSON, en die nuwe opsie --gebruik-warmheid-kleure behels die inkleur van kodelyne gebaseer op hoe gereeld dit gebruik word.
Tale
Kwaliteit en volledigheid van implementering OpenACC die tale C, C++ en Fortran verbeter steeds.
C-agtige tale
- Gedeeltelike ondersteuning vir OpenMP 5.0 is geïmplementeer;
- Kenmerk bygevoeg __ingeboude_omskakelaar;
- Bygevoeg waarskuwing -Wadadres-van-gepakte-lid;
- Verbeterings aan 'n aantal bestaande waarskuwings;
- Die foutteks wanneer die verkeerde aantal argumente na 'n makro oorgedra word, sluit nou die verklaring van die makro self in;
- Verbeterings aan voorstelle vir tikfoutregstelling.
C
- Ondersteun _Static_assert met een argument vir -std=c2x (toekomstige C-standaard);
- Nuwe waarskuwing -Wabsoluut-waarde, wat die verkeerde argumenttipe vang vir funksies soos abs().
C + +
- Nuwe waarskuwings: -W verouderde-kopie,
- Winit-lys-leeftyd,
-Oorbodig-skuif,
-Wpessimisering-skuif,
-Wklas-omskakeling; - Werk is aan die gang om nuwe kenmerke vanaf die toekomstige standaard te implementeer C++2a;
- Die frontend stoor nou meer akkurate inligting oor 'n aantal bronkode-elemente, wat jou toelaat om meer gedetailleerde inligting in diagnostiek te vertoon;
- Verbeterde diagnostiek vir oorlaaide funksies, binêre operateurs, funksie-oproepe en formaatstringe;
- Bygevoeg outomatiese regstellings wat deur sommige ontwikkelingsomgewings ondersteun word vir 'n aantal gewilde foute (ontbrekende hakies, naamspasies, tikfoute, ens.).
libstdc++
- Die C++17-implementering is nie meer eksperimenteel nie;
- Bygevoeg parallelle algoritmes, , , A vereis nie meer -lstdc++fs nie;
- Verbeterde eksperimentele ondersteuning vir C++2a ( , , std::bind_front, ens.);
- Ondersteuning vir die opening van lêerstrome op Windows wie se paaie nie-char karakters bevat;
- Aanvanklike ondersteuning op Windows;
- Aanvanklike ondersteuning vir Networking TS.
D
D-taalweergawe 2.076 is by GCC ingesluit.
Fortran
- Volle ondersteuning vir asinchroniese I/O;
- geïmplementeer BACK argument vir MINLOC en MAXLOC;
- FINLOC en IS_CONTIGOUS funksies geïmplementeer;
- Die sintaksis vir toegang tot die komponente van komplekse getalle is geïmplementeer: c%re en c%im;
- Geïmplementeerde sintaksis str%len en a%kind;
- Geïmplementeerde C-beskrywers en ISO_Fortran_binding.h-kopskrif;
- Verslapper vereistes vir die resultaat van die MAX- en MIN-funksies wanneer een van die argumente NaN is;
- Bygevoeg opsie -fdec-insluit;
- Richtlijn bygevoeg GEBOU.
libgccjit
- Kenmerk bygevoeg gcc_jit_context_add_driver_option.
Ander
Baie argitektuur- en OS-spesifieke veranderinge.
Bron: linux.org.ru