GCC/clang warning incompatibility with unused private member variables

Markus Faehling markus@faehling.com
Fri Jun 11 19:37:04 GMT 2021


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


Markus Faehling

More information about the Gcc mailing list