Den 3 maj slÀpptes den första offentliga versionen av GCC 9.1.
Den innehÄller mÄnga betydande förbÀttringar och tillÀgg jÀmfört med version Ätta.
versionen.
AllmÀnna Àndringar
Alternativ
- Kommandon som tar storlek stöder nu 64-bitars vÀrden och suffix för att ange storlek;
- Ett alternativ har lagts till -flive-patching, för att hantera optimeringar som potentiellt kan skada dynamisk kodbyte;
- Ett alternativ âcompletion har lagts till för att stödja autokomplettering i kommandoraden;
- Kompilatorns diagnostik inkluderar nu radnummer (-fno-diagnostics-show-line-numbers) och
information om typer (-fno-diagnostics-show-labels); - Ett alternativ har lagts till -fdiagnostics-format=json för att skriva ut diagnoser i JSON-format;
- Alternativ för att ange justering (-falign-functions, till exempel) kan nu ta emot par av justeringsalternativ;
- Alternativ för att filtrera fil-listan (-fprofile-filter-files, -fprofile-exclude-files), som instrumenteras av profileraren;
- AddressSanitizer anvÀnder nu en mer kompakt justering för att fÄnga felaktiga Ätkomster till variabler pÄ stacken;
- MÄnga förbÀttringar i utdata -fopt-info;
- Ett alternativ har lagts till -fsave-optimization-record för att spara en rapport om optimeringar i en fil;
- Ett alternativ har lagts till -fipa-stack-alignment och -fipa-reference-addressable.
Nya inbyggda funktioner
Ny attribut
- copy.
Annat
MÄnga förbÀttringar av kodgenereringen relaterade till:
- generering av switch-konstruktioner;
- grÀnsöverskridande optimeringar;
- optimering baserad pÄ profilinformation;
- optimering under byggprocessen (LTO);
Det interna formatet för gcov Ă€r nu JSON, och det nya alternativet âuse-hotness-colors aktiverar fĂ€rgning av kodrader beroende pĂ„ hur ofta de anvĂ€nds.
SprÄk
Kvalitet och fullstÀndighet av implementeringen OpenACC i sprÄk C, C++ och Fortran fortsÀtter att förbÀttras.
C-liknande sprÄk
- Delvis stöd för OpenMP 5.0 har implementerats;
- Funktionalitet har lagts till __builtin_convertvector;
- Ett nytt varningsmeddelande har lagts till -Waddress-of-packed-member;
- FörbÀttringar i flera befintliga varningar;
- Felmeddelandet vid överlÀmnande av fel antal argument till makrot inkluderar nu deklarationen av sjÀlva makrot;
- FörbÀttringar i förslag för att rÀtta stavfel.
C
- Stöd för _Static_assert med ett argument för -std=c2x (den framtida C-standarden);
- Ett nytt varningsmeddelande -Wabsolute-value, som fÄngar felaktig typ av argument för funktioner som abs().
C++
- Nya varningar: -Wdeprecated-copy,
-Winit-list-lifetime,
-Wredundant-move,
-Wpessimizing-move,
-Wclass-conversion; - Arbetet med att implementera nya möjligheter frÄn den framtida standarden pÄgÄr C++ 2a;
- Frontend sparar nu mer exakt information om en rad element i kÀllkoden, vilket möjliggör visning av mer detaljerad information i diagnostik;
- Diagnostik för överlagrade funktioner, binÀra operatörer, funktionsanrop och formatteringsstrÀngar har förbÀttrats;
- Automatiska korrigeringar för en rad vanliga fel (saknade parenteser, namnrymder, stavfel etc.) har lagts till och stöds av vissa utvecklingsmiljöer.
libstdc++
- Implementeringen av C++17 Àr inte lÀngre experimentell;
- Parallella algoritmer har lagts till, <execution>, <memory_resource>, och <filesystem> krÀver inte lÀngre -lstdc++fs;
- Experimentellt stöd för C++ 2a (<bit>, <version>, std::bind_front etc.) har förbÀttrats;
- Stöd för att öppna filströmmar pÄ Windows vars vÀgar innehÄller tecken utanför char;
- Inledande stöd för <filesystem> pÄ Windows;
- Inledande stöd för Networking TS.
D
D-sprÄk version 2.076 ingÄr i GCC.
Fortran
- Fullt stöd för asynkron in- och utmatning;
- Argumentet BACK har implementerats för MINLOC och MAXLOC;
- Funktionerna FINDLOC och IS_CONTIGUOUS har implementerats;
- Syntax för att komma Ät komponenter i komplexa tal: c%re och c%im har implementerats;
- Syntax för str%len och a%kind har implementerats;
- C-deskriptörer och rubriken ISO_Fortran_binding.h har implementerats;
- Krav pÄ resultatet av funktionerna MAX och MIN har lÀttats nÀr ett av argumenten Àr NaN;
- Ett alternativ har lagts till -fdec-include;
- Direktiv tillagt BUILTIN.
libgccjit
- Funktionalitet har lagts till gcc_jit_context_add_driver_option.
Annat
MÄnga arkitektur- och OS-specifika förÀndringar.
KĂ€lla: linux.org.ru

