[SOLVED. РЕШЕНО] gcc>4.3.2 и warn_unused_result

Доброго времени суток всем!
В gcc старше 4.3.2 появилась новая проверка (и warning к ней). Суть ее в том, что компилер смотрит, есть ли в коде проверка результата выполнения какой-либо функции, и если ее нет, то выдает предупреждение. Например:

int foo()
{
 FILE* f;
 char str[1024]; 

 ...
 fgets(str,1024,f);
 printf("%s\n",str);
 ...
} 

На строку, где fgets() выдается warning, что игнорируется результат выполнения функции, которая определена с директивой warn_unused_result. На сколько я понял, -Wno-unused-result комьюнити все-таки выбило из разработчиков... Но когда стабилизируется в gentoo та версия gcc?

Никто не знает, как можно отключить этот warning?

Может все же стоит поправить

Может все же стоит поправить его, а не игнорировать эти предупреждения?
Если же все же нужно проигнорировать то можно использовать флаг
-D_FORTIFY_SOURCE=0
или в файле до включение header'а содержащего декларацию сабжевой функции вставить #undef _FORTIFY_SOURCE

Почему спросил про

Почему спросил про игнорирование... Тем исходникам, которые выдают этот варн, уже много лет. Проверены постоянной эксплуатацией и я прекрасно знаю, что делается в том или ином месте кода. Править исходник, который неизменен уже многие годы только ради избавления от варна как-то неправильно, тем более, что есть номер версии, дата. Менять номер версии только из-за добавления тупой проверки, которая там нужна как зайцу стоп-сигнал не хочется.

Что раздражает - каждый новый gcc неизменно находит новые поводы для варнов. Я понимаю - исправлять в коде, который в разработке или в отладке. Но когда давным-давно проверенный и годами успешно эксплуатируемый код править под каждый новый компилятор - это перебор.

В любом случае спасибо за совет, я проверю этот способ.

ну тогда ясно, а чем

ну тогда ясно, а чем предупреждения тогда мешают? просто интересно

Спасибо еще раз, ваш совет

Спасибо еще раз, ваш совет сработал.

Они не мешают, просто при сборке этих исходников с отладкой у меня установлен ключ -Werror. Соответственно, вылетает компиляция. В общем - проще сделать патч и версию ebuild-a "r[n]"не меняя самих исходников. Я так делаю уже пятый, по-моему, раз.

с отладкой? я чего-то

с отладкой? я чего-то наверное не понял, вы ж сказали что все отлажено годы назад? какой вообще смысл в -Werror если при этом вы тупо игнорируете эти самые ворнинги? Как бы ставить -Werror и выключать _FORTIFY_SOURCE мягко говоря не логично. Это какойто самообман.

Есть крайне старые либы. Я

Есть крайне старые либы. Я уже и не помню, в каком году начатые, ядро было по-моему 2.0.29 в то время. Иногда, если делаю что-то, используя эти либы, нужно в них включать отладку, дабы видеть что происходит. Если интересно, конкретно что именно - писал для себя функции для перечисления процессов и всяческой информации о них, еще перечисления сетевых устройств и их настроек. А также много всякого. Не знаю, возможно сейчас уже и есть что-то сделанное профессионалами в этом направлении, но я привык к своему.

Пускай код не на "нормальном" языке, как здесь уже заметили, изменять я его не хочу. Хотя бы потому, чтобы оставить все как есть на память о тех временах. А варны тоже не люблю.

Что раздражает - каждый новый

Что раздражает - каждый новый gcc неизменно находит новые поводы для варнов. Я понимаю - исправлять в коде, который в разработке или в отладке. Но когда давным-давно проверенный и годами успешно эксплуатируемый код править под каждый новый компилятор - это перебор.

Пиши на нормальном языке с соблюдением стандартов. И нечего пенять на зеркало .
если ЭТО - код на правильных крестах - то я балерина

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

На зеркало никто не пеняет.

На зеркало никто не пеняет. Код написан для себя и под себя. Никому тем более за деньги это не продается. Недостатки как самого кода, так и реализации конкретно приведенной версии я понимаю. Зачем махать шашкой?

-D_FORTIFY_SOURCE=0 Спасибо

-D_FORTIFY_SOURCE=0

Спасибо вам большое, дорогие мои программеры. От админов всего мира вам низкий поклон.Вы как всегда на своей волне - лиш бы собиралось и
у вас на машинке работало - а дальше типо есть низкооплачиваемый суппорт, идиоты-юзеры и придурки-админы.
Пусть они и разбираются, им типа за это деньги платят ?

P.S не думайте что это конкретно про кого то - собирательный образ, так сказать.
А теперь тут рассказываем, чаго вы D_FORTIFY_SOURCE=0 вместо D_FORTIFY_SOURCE=2 наделали :)

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Нет никакого суппорта, никто

Нет никакого суппорта, никто никому не платит. Делается для себя, без претензий на гениальность. А "придурок-админ" - это я, который 13 лет тому назад не видел многого из того, чего хотелось бы здесь и сейчас. Вот и попробовал сделать хоть что-то. В т.ч. - этот самый htbstat был первоначально написан в 1997г., и насколько я понимаю, до сих пор альтернатив нет. И если какому-то "придурку-админу" удобно читать вывод 'tc -s class show' + 'tc -s filter show' - попутного ветра.

В любом случае, спасибо за оценку.

Ну да, именно из-за нас

Ну да, именно из-за нас кустарей все в мире кувырком. Может, и нет у нас научных степеней, но что бы делали вы, болезные? (шутка).

Я сам тоже мАху дал. Забыл поставить статус "SOLVED".

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".