On Tue, Oct 24, 2006 at 06:07:52AM +0700, Slava Semushin wrote: > > --- Alexey Tourbin 2006-10-24 02:17:15 +0400 > +++ Slava Semushin 2006-10-24 05:59:52 +0700 > > AT> Вообще сейчас warn_unused_result > > Ох, задели больную тему... > > У меня три пакета (libtap, wmdiskmon и wmbday) с -Wall -Werror не > пересобираются из-за этих проблем c неиспользуемым результатом. В > частности из-за fgets()/vasprintf()/asprintf(). Также я не обновляю > clines потому что там вылезли варнинги с write(). > > Чесгря только час назад об этом всём думал. Я начал их фиксить. Но > не уверен, что правильно. Поэтому я думаю, как-то отключить эти > предупреждения. Или вовсе тогда -Werror уберу. > > Пожалуйста, объясните, зачем были введены эти предупреждения? И почему > аж в -Wall ? Почему бы не включать их по -W? Неужто всё так серьёзно? > > Также интересно возможно ли как-то заткнуть эти предупреждения? > -Wno-что? Приведение к void не помогло. В случае с libtap, значение > [v]asprintf() проверяется, только чуть иначе -- по первому аргументу. -Wno-pointer-sign помогает в коде, в котором перемешано 'char *' и 'unsigned char *'. Ещё помогает -fno-strict-aliasing, это какой-то gcc'шный бзик, который я до конца не понимаю; к тому же в результате компиляции этот strict aliasing может дать потенциально ошибочный код, что однако на практике я пока краем уха слышал только про IA64. В общем -Werror нужен только для "очень важных" пакетов или для куражу, например собственный код поправить.