Comment 17 for bug 305176

Revision history for this message
In , Joseph-codesourcery (joseph-codesourcery) wrote :

Subject: Re: can't disable __attribute__((warn_unused_result))

On Fri, 17 Oct 2008, bonzini at gnu dot org wrote:

> It does not matter if it is a "security" issue; if void-ifying is not an
> acceptable workaround, there must be at the very least a Wno-* option to
> disable it.

The workaround is to change the header declaring the function with the
attribute. There isn't an option to disable the error for calling a
prototyped function with the wrong number of arguments either; if you feel
you know better than the library author how many arguments the function
should take for a particular use case in the program, you'll need to
change the library or conform to the API it specifies. This attribute is
giving further information about the API for a function.

In the case of fwrite, for example, the only obvious case where checking
would be useless is if you already are writing an error message before
exiting with error status and so an error writing the error message could
not usefully be reported anywhere and wouldn't lead to a change of exit
status. This suggests you might have an xfwrite function that looks at
the return value and acts on it unless a static flag is set to say the
program is in the process of exiting with an error. Coding in the style
suggested by the library API should be easier than trying to work around
the API to code in another style.