<br><br><div class="gmail_quote">2009/8/13 Kirill A. Shutemov <span dir="ltr"><<a href="mailto:kirill@shutemov.name">kirill@shutemov.name</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div class="h5">
>><br>
>> Это ничего не значит. Точнее значит лишь то, что работа оптимизатора<br>
>> различается между версиями компилятора.<br>
>><br>
>> То, что криво написаный код иногда работает -- не аргумент. Если вы<br>
>> желаете отказаться от подбного рода оптимизиций -- используйте<br>
>> -fno-strict-aliasing.<br>
>><br>
><br>
> Я вот сижу и думаю (нет, это не по поводу этого кода), если даже с полностью<br>
> выключенной оптимизацией компилятор (gcc 4.4) создает код, отказывающийся<br>
> работать, тогда как скомпилированный gcc 4.3 работает - стоит разбираться с<br>
> кодом или это в любом случае регрессия компилятора?<br>
<br>
</div></div><br>Зависит от.<br>
<div class="im"><br>
> Кому-то интересно будет посмотреть?<br>
<br>
</div>Давай. Только не два мегабайта кода. Локализуй до 50-100 строк, не больше.<br>
<div><div></div><br></div></blockquote></div><br>Если бы у меня было время всё бросить и сесть с отладчиком локализуя до 100 строк кода я бы не отказал себе в удовольствии самому покопаться. Но эта задача у меня в самом конце TODO, а если это действительно баг в gcc, то его стоило бы локализовать пораньше...<br>
<br>Проблема обнаружилась в liblensfun. Эту библиотеку сейчас использует ufraw. Скомпилированный при помощи gcc 4.3 код отлично работает в ufraw. Для компиляции gcc 4.4 пришлось приложить патчик на тему const char, но он тут даже теоретически не может быть при чем, поскольку чинит сборку своего makedep и ABI посему никак сломать не мог.<br>
<br>Если использовать gcc 4.4, то даже с "-O0" компилируется нерабочий код. Симптом: ufraw при открытии любого файла зависает, вероятно где-то зацикливаясь(?).<br><br><br>