J'ai (essentiellement) viennent à travers ce qui suit dans la naturecomportement non défini ou faux positif
x = x = 5;
qui compile apparemment proprement sous la version antérieure de gcc (génère un avertissement sous gcc 4.5.1). Autant que je sache, l'avertissement est généré par -Wsequence-point. Ma question est-elle contraire au libellé de la norme concernant la manipulation de variables entre des points de séquence (c'est-à-dire un comportement indéfini par spécification) ou est-ce un faux positif de gcc (c'est-à-dire un comportement défini par spécification)? Le libellé des points de séquence est un peu difficile à suivre.
je l'ai dit essentiellement parce que ce fait, je suis tombé (dans une plus grande expression) était
x[0][0] = x[0][0] = 5;
mais je ne pensais pas que matériel était à l'avertissement (s'il vous plaît me corriger si cela est au point et pas ce que j'ai supposé est le point crucial de la question).
Que ce soit en violation du libellé de la norme ou non, c'est un code abyssal. Tuez-le avec le feu! Laissez une telle expression ne jamais obscurcir votre code à nouveau. – abelenky
@abelenk est d'accord. Ce n'est pas mon code et je voulais être sûr que c'était UB avant de le mettre au CCB. – bpw1621