GCC 9.1


GCC 9.1

Le 3 mai a eu lieu la première version publique de la neuvième version de GCC : GCC 9.1.
Il contient de nombreuses améliorations et ajouts significatifs par rapport au huitième
version.

Modifications générales

Options de
Nouvelles fonctionnalités intégrées
Nouvel attribut
Autre

De nombreuses améliorations de la génération de code liées à :

  • génération de constructions de commutateurs ;
  • optimisations inter-procédurales ;
  • optimisation basée sur les informations de profilage ;
  • optimisation au stade de l'assemblage (LTO) ;

Le format interne de gcov est également désormais JSON, et la nouvelle option --use-hotness-colors implique de colorer les lignes de code en fonction de la fréquence à laquelle elles sont utilisées.

Langues

Qualité et exhaustivité de la mise en œuvre OuvrirACC les langages C, C++ et Fortran continuent de s'améliorer.

Langages de type C
  • La prise en charge partielle d'OpenMP 5.0 a été implémentée ;
  • Fonction ajoutée __builtin_convertvecteur;
  • Avertissement ajouté -Adresse-du-membre emballé;
  • Améliorations d'un certain nombre d'avertissements existants ;
  • Le texte d'erreur lors du passage d'un nombre incorrect d'arguments à une macro inclut désormais la déclaration de la macro elle-même ;
  • Améliorations des suggestions de correction de fautes de frappe.
C
  • Prise en charge de _Static_assert avec un argument pour -std=c2x (futur standard C) ;
  • Nouvel avertissement -Wabsolute-value, qui détecte le mauvais type d'argument pour des fonctions comme abs().
C + +
  • Nouveaux avertissements : -W copie obsolète,
    -Winit-list-durée de vie,
    -Mouvement redondant,
    -Wpessimizing-mouvement,
    -Conversion de classe W;
  • Des travaux sont en cours pour implémenter les nouvelles fonctionnalités du futur standard C++2a;
  • L'interface stocke désormais des informations plus précises sur un certain nombre d'éléments du code source, ce qui vous permet d'afficher des informations plus détaillées dans les diagnostics ;
  • Diagnostics améliorés pour les fonctions surchargées, les opérateurs binaires, les appels de fonction et les chaînes de format ;
  • Ajout de correctifs automatiques pris en charge par certains environnements de développement pour un certain nombre d'erreurs courantes (parenthèses manquantes, espaces de noms, fautes de frappe, etc.).
libstdc++
  • L'implémentation C++17 n'est plus expérimentale ;
  • Ajout d'algorithmes parallèles, , , UN ne nécessite plus -lstdc++fs ;
  • Prise en charge expérimentale améliorée pour C++2a ( , , std::bind_front, etc.);
  • Prise en charge de l'ouverture de flux de fichiers sous Windows dont les chemins contiennent des caractères autres que des caractères ;
  • Prise en charge initiale sous Windows ;
  • Prise en charge initiale de Networking TS.
D

La version 2.076 du langage D est incluse dans GCC.

Fortran
  • Prise en charge complète des E/S asynchrones ;
  • Implémentation de l'argument BACK pour MINLOC et MAXLOC ;
  • Implémentation des fonctions FINDLOC et IS_CONTIGOUS ;
  • La syntaxe d'accès aux composantes des nombres complexes a été implémentée : c%re et c%im ;
  • Syntaxe implémentée str%len et a%kind ;
  • Implémentation des descripteurs C et de l'en-tête ISO_Fortran_binding.h ;
  • Exigences assouplies pour le résultat des fonctions MAX et MIN lorsque l'un des arguments est NaN ;
  • Option ajoutée -fdec-include;
  • Directive ajoutée BÂTI.
libgcccjit

Autre

De nombreux changements spécifiques à l'architecture et au système d'exploitation.

Source: linux.org.ru

Ajouter un commentaire