43Fermer45
PpHdLe 10/11/2014 à 23:53
Folco (./41) :

(et c'est quoi ce have_builtin_unreachable au passage ? yen a qui s'éclatent avec le préproc, c'est fou ça grin.gif?14)

__builtin_unreachable (cf. https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#Other-Builtins ) signifie au compilateur que le chemin qui amène à cet appel n'est pas appel.
Typiquement if (n <= 2) __builtin_unreachable (); for(i = 0 ; i < 2; i++)
C'est pratique pour après une instruction asm qui reboote ou pour éliminer des branches de l'arbre de décision du compilateur, qui peut simplifier et prendre le chemin le plus rapide.
(en pratique, ca permet effectivement de générer du code un peu mieux wink)