GCC/clang warning incompatibility with unused private member variables

Gabriel Ravier gabravier@gmail.com
Fri Jun 11 19:59:41 GMT 2021


On 6/11/21 9:37 PM, Markus Faehling wrote:
> Hello,
>
> I'm currently facing a problem where I cannot get both gcc and clang 
> warning-free simultaneously in my project. My code looks somewhat like 
> this:
>
> class Test {
>     int a_;
>     void b() {};
> };
>
> This code gives me the(usually very useful) "-Wunused-private-field" 
> warning on clang. But because I have the unused member on purpose, I 
> would like to add the [[maybe_unused]] attribute to it:
>
> class Test {
>     [[maybe_unused]] int a_;
>     void b() {};
> };
>
> While this version is warning-free in clang, gcc has a "-Wattributes" 
> warning because it ignores the [[maybe_unused]] warning. But I do not 
> want to disable either of these warnings because they are still very 
> useful in other situations.
>
> Would it be possible to ignore the "-Wattributes" warning for 
> [[maybe_unused]] in places where other compilers might use the attribute?
>
> Demonstration on godbolt.org: https://godbolt.org/z/8oT4Kr5eM
>
> Regards,
>
> Markus Faehling
>
It should be easy to solve this with some application of `#pragma GCC 
diagnostic` pragmas to temporarily disable `-Wattributes` on that 
specific line. I suppose it may look ugly, but it works.


More information about the Gcc mailing list