我(基本上)遇到下列野生未定義行爲或假陽性
x = x = 5;
這顯然編譯乾淨的gcc下的早期版本(生成下GCC 4.5.1警告)來了。據我所知,警告是由-W序列點產生的。所以我的問題是這是否違反了標準中關於在序列點之間操縱變量的標準(即,它是每個規範未定義的行爲)還是這是gcc誤報(即,它是按照規範定義的行爲)?順序點的措辭有點難以遵循。
我基本上是說,因爲我居然遇到了(在一個更大的表達式)是
x[0][0] = x[0][0] = 5;
,但我不認爲這是材料的警告(請糾正我,如果這是在點不是我所認爲的是問題的關鍵)。
無論是否違反標準中的措辭,都是代碼糟糕。用火殺死它!讓這樣一個表達式再也不會讓你的代碼變暗。 – abelenky 2010-11-09 00:17:57
@abelenk同意。這不是我的代碼,我想確保在將它提交給CCB之前是UB。 – bpw1621 2010-11-09 00:31:53