- la compilation se fait maintenant dans le même processus que le processus lançant la compilation. L'ancien comportement (un sous-processus séparé) peut être rétabli avec l'option -fno-integrated-cc1 ;
- le diagnostic des sources a été amélioré :
- -Wtautological-overlap-compare ajoute un avertissement sur les nombres négatifs et types non entiers,
- -Wbitwise-conditional-parentheses ajoute un avertissement sur la précédence lorsque les opérateurs bit à bit & et | sont combinés avec l'opérateur ternaire ?:,
- ajout d'un avertissement sur l'indentation trompeuse qui pourrait induire une mauvaise lecture du code (indentation d'un code, alors qu'il ne se trouve pas dans un bloc) (-Wmisleading-indentation) (c'est une reprise de l'avertissement déjà présent dans GCC),
- désactivation de -Wbitwise-op-parentheses et -Wlogical-op-parentheses par défaut,
- ajout d'un avertissement d'utilisation d'un mauvais type lors d'une division reposant sur sizeof() (par exemple, pour trouver la taille d'un tableau statique) (-Wsizeof-array-div) ;
- ajout de vérification sur le déroulement du programme (Control Flow Guard) spécifique à Windows ;
- respect de l'élision de copie du C++17 ;
- correction des listes d'initialisations ;
- correction de l'opérateur virgule , ;
- ajout d'une option -fgnuc-version= pour contrôler la valeur des macros __GNUC__ ;
- ajout de l'attribut __attribute__((target("branch-protection=..."))) ;
- le comportement de gnu_inline est calé sur celui-ci de GCC lors d'une utilisation sans le mot-clé extern ;
- amélioration de l'analyseur statique et du sanitizer de comportement indéfini (UBSan) ;
- amélioration du support des noyaux OpenCL ;
- ajout de fonctionnalités et amélioration du support d'OpenMP 5 (activable avec l'option -fopenmp-version=50.
La liste complète des changements de Clang est disponible dans les notes de publication. Aussi, vous pouvez découvrir les changements globaux à LLVM dans cette page dédiée.
Votre opinion
Que pensez-vous de Clang ? L'utilisez-vous dans vos projets ? Pourquoi ?
Source
Notes de publication