Il compilatore GCC GNU aggiunge il supporto per C ++ 17

Con la versione 7.1 di GCC (GNU Compiler Collection), rilasciata questa settimana, la piattaforma ottiene il supporto anticipato per lo standard C ++ 17 e miglioramenti alla diagnostica.

La versione 7.1 ha un front-end C ++ con supporto sperimentale per tutta la bozza di specifica C ++ 17. La -std=c++1ze -std=gnu++1zle opzioni e il libstdc++sono supportati, e la biblioteca ha la maggior parte C ++ 17 Progetto biblioteca funzionalità implementate. La versione precedente di GCC 6.1 rispettava lo standard C ++ 14.

La serie GCC 7 differisce dalle versioni precedenti utilizzando LRA (Local Register Allocator) per impostazione predefinita per i nuovi target e deprecando le estensioni Cilk + per i linguaggi C e C ++. Inoltre, alcuni comportamenti sono stati attenuati per migliorare la compilazione o le prestazioni di runtime. Tuttavia, alcune modifiche potrebbero "causare problemi" durante il porting su GCC 7, secondo le note di rilascio, che citano problemi di preprocessore e C, nonché problemi di linguaggio C ++, come regole più rigide per i modelli. "GCC 7 non accetta più vari costrutti mal formati che implicano l'uso di modelli", dicono le note.

GCC 7.1 potenzia anche la diagnostica emessa, comprese le posizioni migliorate, e miglioramenti all'ottimizzatore compaiono in tutte le ottimizzazioni intra e interprocedurali, ottimizzazioni del tempo di collegamento e vari back-end di destinazione, come aggiunte di passaggio di unione del negozio, ottimizzazione del sollevamento del codice, suddivisione del loop, e miglioramenti nella confezione termoretraibile. Inoltre, il disinfettante degli indirizzi di GCC ora può segnalare gli usi delle variabili dopo che escono dal loro ambito. GCC può essere configurato per l'offload dell'API OpenMP su GPGPU PTX Nvidia, ma alcuni codici compilati con versioni precedenti di GCC potrebbero richiedere aggiustamenti. La raccolta include front-end per C, C ++, Objective-C, Fortran, Ada e Go.