Je vois plusieurs explications qui peuvent expliquer qu'il n'y ait pas d'avertissement :
c'est compliqué à implémenter dans le cas général
ce n'est pas vraiment utile en général
ça risque d'inonder l'utilisateur de faux positifs dans le cas d'un programme typique
Le point commun de tout ça : l'exemple donné ici est construit exprès pour démontrer ce comportement, ça ne représente pas un cas général. Il ne faut donc pas jeter trop vite la pierre aux devs de Clang, ils cherchent avant tout à optimiser des programmes réels, infiniment plus complexes que la démo qu'on a ici. Et je suppose que le problème doit être d'une complexité toute autre quand on a des centaines de milliers de lignes de code réparties dans plusieurs dizaines de fichiers.
[^] # Re: Erreur?
Posté par Buf (Mastodon) . En réponse au journal Compilateur trop intelligent. Évalué à 3.
Je vois plusieurs explications qui peuvent expliquer qu'il n'y ait pas d'avertissement :
Le point commun de tout ça : l'exemple donné ici est construit exprès pour démontrer ce comportement, ça ne représente pas un cas général. Il ne faut donc pas jeter trop vite la pierre aux devs de Clang, ils cherchent avant tout à optimiser des programmes réels, infiniment plus complexes que la démo qu'on a ici. Et je suppose que le problème doit être d'une complexité toute autre quand on a des centaines de milliers de lignes de code réparties dans plusieurs dizaines de fichiers.