Пруль Таймс
 
[Most Recent Entries] [Calendar View] [Friends View]

Friday, September 5th, 2014

    Time Event
    9:38p
    Программистские досуги
    Развлекаясь сборкой разных версий мадов (MUD) я нашел интересный баг (или не баг, а фичу).

    Некий код не собирался при помощи gcc 4.4.5 (Debian 6), хотя я помню, в 5 Дебиане я его собирал без проблем. Более подробный анализ показал следующую ситуацию:

    Есть массив int flag[3]

    flag[0] - это lvalue, это понятно

    А вот конструкция вида

    (i<0) ? flag[0] : flag[1]

    рассматривается старым компилятором (3.*) как lvalue, а новым (4.*) нет

    Возникает вопрос, есть ли у gcc 4.4.5 флага, чтобы он вел себя как 3.*, хотя бы в этой ситуации. Если нет, я тупо перепишу макрос на 3 строчки в функцию и все разрулится. Вообще, кто копал коды CircleMUD, это ужасужасужас. Эти упоротые укурки из Дании очень любят макросы, многострочные, длинные и много раз вложенные, хорошо, хоть без рекурсии

    << Previous Day 2014/09/05
    [Calendar]
    Next Day >>

About LJ.Rossia.org