Еще раз, наши самые любимые "i=i--" -подобные проблемы. В C99 у нас есть:
6.5 Выражение № 2: Между предыдущей и следующей точкой последовательности сохраненное значение объекта должно быть изменено не более одного раза.
70) Этот абзац отображает !!undefined!! операторные выражения, такие как
i = ++i + 1;
Но для неопределенного поведения могут быть варианты от случайного вывода до «задокументированного выполнения программы» (c99 3.4.3)
Итак, вопрос:
Документирует ли gcc поведение для операторов i=i++, i=i-- и т. д.?
Фактический код
int main(){int i=2;i=i--;return i;}