__attribute__((warn_unused_result)

Daniel Lohmann daniel.lohmann@informatik.uni-erlangen.de
Sat Apr 7 21:17:00 GMT 2007



Mohanlal Jangir schrieb:
> On 4/6/07, John (Eljay) Love-Jensen <eljay@adobe.com> wrote:
>> Hi Mohanlal,
>>
>> That warning was introduced in GCC 3.4.
>>
>> HTH,
>> --Eljay
>>
> 
> Hi Eljay,
> 
> With same compiler, following program works well (compiles as well as
> gives warning)
> #include <stdio.h>
> 
> class myClass {
>    public:
>    int count() __attribute__((warn_unused_result));
> };
> [...]
> 
> The only problem is, the program does not work if I define the method
> inside the class. Any clue ??

It is syntactically not  possible to place attributes between the function 
head and the definition in gcc. The usual solution is to put it somewhere 
else. Have you tried:

class myClass {
    public:
    int __attribute__((warn_unused_result)) count()
    {
        return printf("hello world\n");
    }
};

The gcc manual is a bit misleading here, as it presents only examples where 
attributes are used in a function declaration and does not discuss how to 
use them in a definition-is-implicit-declaration situation.

I haven't tried the above with this particular attribute, but it works well 
with other function-relevant attributes such as always_inline.

Daniel



More information about the Gcc-help mailing list