История изменений
Исправление Iron_Bug, (текущая версия) :
я пока могу сказать, что это проблема конкретного компилятора. а не какое-то «неявное поведение в Си». пока не могу сказать, насколько сложно её пофиксить. надо смотреть код.
но мне эта странная фича не мешает, потому что я не пишу такие странные куски кода. я именно сишник, а не задрот-экспериментатор, со студенческим пылом собрать все баги компилятора.
пока единственный баг компилятора, который я находила и который реально генерил неправильный бинарный код, был в компиляторе для Microchip и я им написала и они его пофиксили. вникать в драму с конкретным багом gcc я не хочу. да, можно посмотреть код и убрать это поведение. но для меня нет смысла тратить на это время. если разработчики править баг не хотят, а ты хочешь именно вот такой код, а не memset, стоит рассмотреть другие компиляторы. благо, их предостаточно. также можно рассмотреть ассемблерные вставки, думаю, что их он не оптимизирует.
Исходная версия Iron_Bug, :
я пока могу сказать, что это проблема конкретного компилятора. а не какое-то «неявное поведение в Си». пока не могу сказать, насколько сложно её пофиксить. надо смотреть код.
но мне эта странная фича не мешает, потому что я не пишу такие странные куски кода. я именно сишник, а не задрот-экспериментатор, со студенческим пылом собрать все баги компилятора.
пока единственный баг компилятора, который я находила и который реально генерил неправильный бинарный код, был в компиляторе для Microchip и я им написала и они его пофиксили. вникать в драму с конкретным багом gcc я не хочу. да, можно посмотреть код и убрать это поведение. но для меня нет смысла тратить на это время. если разработчики править баг не хотят, стоит рассмотреть другие компиляторы. благо, их предостаточно.