| |||
|
|
Программистские досуги Развлекаясь сборкой разных версий мадов (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, это ужасужасужас. Эти упоротые укурки из Дании очень любят макросы, многострочные, длинные и много раз вложенные, хорошо, хоть без рекурсии Добавить комментарий: |
||||||||||||||