Версия: gcc (GCC) 4.1.0 20060304 (Red Hat 4.1.0-3)Вывод компилятора:
...
cc1: warnings being treated as errors
r_image.c: In function 'LoadPCX':
r_image.c:103: warning: dereferencing type-punned pointer will break strict-aliasing rules
В общем оказалось 2 типа варнингов но как я понял компилятор их считает за ошибки
может такие варнинги можно игнорировать специальными ключами компиляции?
Файл r_image.c:
byte *raw;
...
--> len = ri.FS_LoadFile (filename, (void **)&raw);
Я заменил (void **) на (void *), везде где указывал компилятор (в 12 файлах)
и еще это:
--> int tmp = * ( int * ) &f;
tmp &= 0x7FFFFFFF;
--> return * ( float * ) &tmp;
заменил на это (в 3 файлах):
--> int tmp = ( int ) f;
tmp &= 0x7FFFFFFF;
--> return ( float ) tmp;
Во втором случае не сращу, кто нибуть может объяснить чем
интерпретация переменной int как переменной float (на что я заменил)
отличается от
интерпретации указателя на int как указателя на float (то что было)
результат то один :-$
после всех замен откомпилилось нормально ;)