'optimisation choisie par le compilateur confirme ce que je pensais: si l'on doit donner une valeur au résultat (non défini d'après la doc)
ça ne peut être que la valeur 0 (la seule qui soit parfaitement logique).
En fait, non. Si vous regardez le code généré, l'optimisation va zapper tout le code et se résumer à
intmain(){return0;}
Si vous forcez l'affichage du résultat, GCC7 donnera 0, CLang donnera ce qu'il trouve sous la variable.
Mais aucun des deux ne tentera de faire un shr.
[^] # Re: Undefined behavior
Posté par David Marec . En réponse au journal Un décalage de 64 bits, ça vous inspire comment ?. Évalué à 4.
En fait, non. Si vous regardez le code généré, l'optimisation va zapper tout le code et se résumer à
Si vous forcez l'affichage du résultat, GCC7 donnera 0, CLang donnera ce qu'il trouve sous la variable.
Mais aucun des deux ne tentera de faire un
shr.