При сборке с помощью lcc 1.23.12 на e2k-alt-linux наблюдаю: make[2]: Entering directory '/usr/src/RPM/BUILD/openssl-gost-engine-1.1.0.3.0.255.ge3af41d.p1/BUILD' [ 80%] Building C object CMakeFiles/test_curves.dir/test_curves.c.o lcc: "/usr/src/RPM/BUILD/openssl-gost-engine-1.1.0.3.0.255.ge3af41d.p1/test_curves.c", строка 32: ошибка: вероятное использование "=" вместо "==" [-Werror=assign-where-compare-meant] #define TEST_ASSERT(e) {if ((test = (e))) \ ^ в раскрытие макроса "TEST_ASSERT" на строке 217 TEST_ASSERT(0); ^ 1 ошибка обнаружено при компиляции "/usr/src/RPM/BUILD/openssl-gost-engine-1.1.0.3.0.255.ge3af41d.p1/test_curves.c". Понятно, что можно сказать "так и задумано", но лучше бы сделать это прям там, а не объездом при сборке; сейчас не наблюдаю никаких намёков: 32 #define TEST_ASSERT(e) {if ((test = (e))) \ 33 printf(cRED " Test FAILED\n" cNORM); \ 34 else \ 35 printf(cGREEN " Test passed\n" cNORM);}
(In reply to comment #0) > Понятно, что можно сказать "так и задумано", но лучше бы сделать > это Прям что? > прям там, Прям где? > а не объездом при сборке; сейчас не наблюдаю никаких намёков: > > 32 #define TEST_ASSERT(e) {if ((test = (e))) \ В gcc дополнительные скобочки всегда позволяли объяснить компилятору, что так и задумано.
Спасибо; мне всё что-то про прагму припоминалось.