le compilateur peut choisir n'importe quel comportement possible en accord avec la norme en cas de non déterminisme; c'est sur ce point que je n'ai pas bien compris si le choix de clang est acceptable
Je ne suis pas sûr de te suivre : le non déterminisme (plusieurs choix) est une chose différente des comportements indéfinis (sémantique bloquante). Ici je sais pas si c'est vraiment un comportement indéfini ou non, par contre. Mais une des premières choses que fait CompCert, c'est de faire un choix pour tous les non-déterminismes de C, afin de faire en sorte que tous les langages intermédiaires suivants soient déterministes, ce qui simplifie pas mal certaines choses.
Je m'aperçois par contre que j'ai tourné cette phrase à l'envers :
alors un des comportements possibles du source correspond à une « amélioration » de ce comportement
C'est le code compilé qui est une « amélioration » est pas l'inverse, mais j'imagine que tu avais bien compris :)
[^] # Re: Comportement attendu
Posté par anaseto . En réponse au journal Compilateur trop intelligent. Évalué à 2.
Je ne suis pas sûr de te suivre : le non déterminisme (plusieurs choix) est une chose différente des comportements indéfinis (sémantique bloquante). Ici je sais pas si c'est vraiment un comportement indéfini ou non, par contre. Mais une des premières choses que fait CompCert, c'est de faire un choix pour tous les non-déterminismes de C, afin de faire en sorte que tous les langages intermédiaires suivants soient déterministes, ce qui simplifie pas mal certaines choses.
Je m'aperçois par contre que j'ai tourné cette phrase à l'envers :
C'est le code compilé qui est une « amélioration » est pas l'inverse, mais j'imagine que tu avais bien compris :)