the current version of clang understands __attribute__((unused)) on
fields.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159252
91177308-0d34-0410-b5e6-
96231b3b80d8
.Case("attribute_objc_method_family", true)
.Case("attribute_overloadable", true)
.Case("attribute_unavailable_with_message", true)
+ .Case("attribute_unused_on_fields", true)
.Case("blocks", LangOpts.Blocks)
.Case("cxx_exceptions", LangOpts.Exceptions)
.Case("cxx_rtti", LangOpts.RTTI)
int by_initializer_;
};
+class HasFeatureTest {
+#if __has_feature(attribute_unused_on_fields)
+ int unused_; // expected-warning{{private field 'unused_' is not used}}
+ int unused2_ __attribute__((unused)); // no-warning
+#endif
+};
+
namespace templates {
class B {
template <typename T> void f(T t);