U 3 di maghju hè stata a prima liberazione publica di a novena versione di GCC: GCC 9.1.
Cuntene assai megliurenze è aghjunte significativu cumparatu cù l'ottu
versione.
Cambiamenti generali
Opzioni
- I cumandamenti chì accettanu a dimensione supportanu avà valori 64-bit è suffissi per specificà a dimensione;
- Opzione aghjuntu - flive-patching,per cuntrullà l'ottimisazioni chì sò potenzalmentu distruttivi per a dinamica di rimpiazione di codice;
- Aggiunta l'opzione --completion per supportà l'autocumplementu in a shell di cumanda;
- A diagnostica di u compilatore include avà numeri di linea (-fno-diagnostics-show-line-numbers) è
infurmazione di tipu (fno-diagnostics-show-labels); - Opzione aghjuntu -fdiagnostics-format=json per fà u diagnosticu in formatu JSON;
- Opzioni per specificà l'allineamentu (-falign-funzioni, per esempiu) ponu avà accettà un paru di opzioni di allinamentu;
- Opzioni aghjunte per filtrà a lista di i schedari (-fprofile-filter-files, -fprofile-exclude-files), chì sò instrumentati da u profiler;
- AddressSanitizer usa avà un allineamentu più compactu per catturà accessi invalidi à variàbili nantu à a pila;
- Numerose migliure di output -fopt-info;
- Opzione aghjuntu -fsave-optimization-record per salvà u rapportu di ottimisazione in un schedariu;
- Opzione aghjuntu -fipa-stack-alignment и -fipa-reference-addressable.
Nove funzioni integrate
Novu attributu
Altru
Numerose migliure di generazione di codice ligati à:
- generazione di custruzzioni di switch;
- ottimisazioni inter-prucedurali;
- ottimisazione basatu annantu à l'infurmazioni di prufilu;
- ottimisazione à u stadiu di l'assemblea (LTO);
Ancu u formatu internu di gcov hè avà JSON, è a nova opzione --utilizate-caldi-culori implica linee di culore di codice basatu nantu à quantu spessu sò usati.
Lingue
Qualità è cumpleta di l'implementazione OpenACC e lingue C, C++, è Fortran cuntinueghjanu à migliurà.
lingue C-like
- U supportu parziale per OpenMP 5.0 hè statu implementatu;
- Funzione aghjuntu __builtin_convertvector;
- Avvisu aghjuntu -Address-di-membru-imballatu;
- Migliuramentu à una quantità di avvisi esistenti;
- U testu d'errore quandu passa u numeru sbagliatu di argumenti à una macro include avà a dichjarazione di a macro stessa;
- Migliure à i suggerimenti di correzione di typo.
C
- Supportu _Static_assert cun un argumentu per -std = c2x (futuru standard C);
- Novu avvisu -Wabsolute-value, chì cattura u tipu d'argumentu sbagliatu per e funzioni cum'è abs ().
C ++
- Novi avvisi: -Wdeprecated-copia,
- Winit-list-lifetime,
-Wredundant-move,
-Wpessimizing-move,
-Wclass-cunversione; - U travagliu hè in corso per implementà e funzioni novi da u futuru standard C ++ 2a;
- U frontend guarda avà infurmazione più precisa nantu à una quantità di elementi di codice fonte, chì permette di vede infurmazione più dettagliata in diagnostichi;
- Diagnostica mejorata per funzioni sovraccarichi, operatori binari, chjama di funzione è stringhe di furmatu;
- Aghjunghjite correzioni automatiche supportate da certi ambienti di sviluppu per una quantità di errori populari (parentesi mancanti, spazii di nomi, typos, etc.).
libstdc++
- L'implementazione C++ 17 ùn hè più sperimentale;
- Aggiunti algoritmi paralleli, , , A ùn hè più bisognu di -lstdc++fs;
- Supportu sperimentale migliuratu per C ++ 2a ( , , std::bind_front, etc.);
- Supportu per l'apertura di flussi di fugliale in Windows chì i percorsi cuntenenu caratteri non-char;
- Supportu iniziale nantu à Windows;
- Supportu iniziale per Networking TS.
D
A versione di lingua D 2.076 hè inclusa in GCC.
Fortran
- Supportu cumpletu per l'I/O asincronu;
- Argumentu BACK implementatu per MINLOC è MAXLOC;
- Implementate funzioni FINDLOC è IS_CONTIGOUS;
- A sintassi per accede à i cumpunenti di numeri cumplessi hè stata implementata: c%re è c%im;
- Sintassi implementata str%len è a%kind;
- Descriptori C implementati è ISO_Fortran_binding.h header;
- I requisiti per u risultatu di e funzioni MAX è MIN sò stati rilassati quandu unu di l'argumenti hè NaN;
- Opzione aghjuntu -fdec-include;
- A direttiva aghjunta CUSTRU.
libgccjit
- Funzione aghjuntu gcc_jit_context_add_driver_option.
Altru
Parechji cambiamenti specifichi di l'architettura è OS.
Source: linux.org.ru