• [^] # Re: Undefined behavior

    Posté par . En réponse au journal Un décalage de 64 bits, ça vous inspire comment ?. Évalué à 4.

    '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 à

    int main(){
     return 0;
    }

    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.