Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

GCC 6.3 disponible
Cette version du système de compilation libre se concentre sur la correction de bogues et de régressions dans GCC 6.2

Le , par Michael Guilloux

21PARTAGES

7  0 
Sept mois après la sortie de la version majeure annuelle, numérotée 6.1, une deuxième itération du GNU Compiler Collection (GCC) est disponible : GCC 6.3. Pour rappel, GCC est une collection de compilateurs créés par le projet GNU. Il s’agit plus exactement d’un logiciel libre capable de compiler divers langages de programmation, dont C, C++, Objective-C, Java, Ada et Fortran. Il faut également noter qu’il est utilisé pour le développement de la plupart des logiciels libres.

La version 6.1 GCC sortie en avril dernier a introduit d’importants changements et améliorations dans tous les domaines. Côté C++, le compilateur est passé sur la norme C++14 par défaut, au lieu de C++98 auparavant. On a également enregistré l’implémentation de quelques fonctionnalités de C++17. Pour le domaine HPC, OpenMP 4.5 a été complètement implémenté, alors que l’implémentation de OpenACC 2.0a a de son côté été améliorée. Au niveau matériel, GCC 6.1 a embarqué la prise en charge des processeurs AMD Zen et des améliorations pour les plateformes ARM. Il faut encore ajouter que l’architecture PowerPC a reçu la compatibilité avec POWER9, un processeur de la gamme POWER conçu et produit par IBM et annoncé pour l'année 2017.

Comme GCC 6.2 publiée en août dernier, GCC 6.3 est une version corrective pour la branche GCC 6.x. Cette nouvelle itération contient des correctifs pour des régressions et des bogues dans GCC 6.2, avec plus de 79 bogues corrigés depuis la version précédente.

Vous trouverez sur GCC Bugzilla la liste des problèmes rapportés dans le système de suivi des bogues de GCC qui ont été corrigés dans la version 6.3. Il faut toutefois préciser que cette liste peut ne pas être complète, c'est-à-dire qu'il est possible que certains problèmes qui ont été corrigés n'y soient pas répertoriés. Cette version peut être téléchargée à partir du site GNU.org.

Il faut par ailleurs préciser que tous les nouveaux développements autour de la collection de compilateurs GNU sont centrés sur la prochaine version majeure : GCC 7, qui est attendue au début de l’année prochaine.

Sources : GCC 6 Release Series

Voir aussi :

Sortie de GCC 6.1 : cette version du système de compilation libre arrive avec C++14 activé par défaut et l'implémentation complète de OpenMP 4.5
Fedora et GCC 6 montrent de mauvaises pratiques de codage, la nouvelle version du compilateur refuse maintenant des constructions douteuses
Forum GCC

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de frfancha
Membre éclairé https://www.developpez.com
Le 26/12/2016 à 21:29
Citation Envoyé par dourouc05 Voir le message

Code : Sélectionner tout
1
2
3
4
5
void in_order() {
  if (this == nullptr) return;
  left->in_order();
  right->in_order();
}
Cependant, avec cette optimisation (permise par le standard C++), le premier test sera toujours faux, puisque, par hypothèse, this est toujours un pointeur valide… et ce code plantera lamentablement à l’arrivée d’une feuille.
Soit je suis très fatigué, soit l'exemple est complètement erroné: de toute façon à l'appel de la méthode (par left->in_order() par exemple) this n'est PAS null et l'élimination du test ne pose aucun problème.
Ce qui pose problème et qui fait que ce code est pourri c'est l'appel left->in_order() sans vérifier que left est null ou pas, et ça n'a rien à voir avec l'optimisation.
Non?
1  0 
Avatar de
https://www.developpez.com
Le 26/12/2016 à 16:56
Citation Envoyé par dourouc05 Voir le message

[...]Une nouvelle optimisation fait parler d’elle : la propagation de valeurs considère désormais que le pointeur this en C++ (qui pointe vers l’objet courant) est toujours initialisé (sa valeur n’est jamais nullptr).[...]
Il va sûrement falloir que je relise encore, mais c'est plutôt cool pour le destructeur.

Citation Envoyé par Michael Guilloux Voir le message

[...]Il faut par ailleurs préciser que tous les nouveaux développements autour de la collection de compilateurs GNU sont centrés sur la prochaine version majeure : GCC 7, qui est attendue au début de l’année prochaine.[...]
Cool.
0  0 
Avatar de laerne
Membre éprouvé https://www.developpez.com
Le 27/12/2016 à 17:59
J'aurais cru qu'une fonction non-virtuelle aurait été appelée en poussant `this` sur la stack en copiant directement le pointeur utilisé pour l'appel sans vérifier si c'est nullptr, mais en codant un test compilé avec GCC6.2, ce n'est pas le cas. Donc tu as raison.…
0  0