Ce qui va être exécuté est le return 1. l’optimisateur de clang vas tout simplement virer une bonne partie du code de la boucle pour en faire une boucle while(1) {return 1;} ou un "do{ return 1; }while(1)" et comme cela ne sert rien, il remplacera le tout par un return 1; donc à partir d’un code mort du if, succédera une déduction qui pousse naturellement l’optimiseur à remplacer le code de test part
Remarque qu'avec Gcc en mode statique en obtient le même résultat
Code asm : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 test: mov eax, 0x1 ret ; padding ...
Partager