From ed50a8a7a8b5fbb5d365b39c81ec389e19e4360e Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Thu, 28 Oct 2010 02:16:22 +0000 Subject: [PATCH] Don't warn about unamed bitfield ivars in the ObjCUnusedIvarsChecker. Fixes . git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117521 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Checker/ObjCUnusedIVarsChecker.cpp | 4 +++- test/Analysis/unused-ivars.m | 14 +++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/Checker/ObjCUnusedIVarsChecker.cpp b/lib/Checker/ObjCUnusedIVarsChecker.cpp index 2523cff9d8..edeba74ae8 100644 --- a/lib/Checker/ObjCUnusedIVarsChecker.cpp +++ b/lib/Checker/ObjCUnusedIVarsChecker.cpp @@ -113,9 +113,11 @@ void clang::CheckObjCUnusedIvar(const ObjCImplementationDecl *D, // (a) aren't private // (b) explicitly marked unused // (c) are iboutlets + // (d) are unnamed bitfields if (ID->getAccessControl() != ObjCIvarDecl::Private || ID->getAttr() || ID->getAttr() || - ID->getAttr()) + ID->getAttr() || + ID->isUnnamedBitfield()) continue; M[ID] = Unused; diff --git a/test/Analysis/unused-ivars.m b/test/Analysis/unused-ivars.m index 14c43a86c4..c88d14880b 100644 --- a/test/Analysis/unused-ivars.m +++ b/test/Analysis/unused-ivars.m @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fblocks -analyze -analyzer-check-objc-unused-ivars %s -verify +// RUN: %clang_cc1 -fobjc-nonfragile-abi2 -fblocks -analyze -analyzer-check-objc-unused-ivars %s -verify //===--- BEGIN: Delta-debugging reduced headers. --------------------------===// @@ -95,4 +95,16 @@ int radar_7254495(RDar7254495 *a) { @implementation RDar7353683 @end +//===----------------------------------------------------------------------===// +// Unused bitfield ivars trigger cause weird +// diagnostic: "Instance variable '' in class…" +//===----------------------------------------------------------------------===// +@interface RDar8481311 { +@private + unsigned bitfield:1; // expected-warning {{Instance variable 'bitfield' in class 'RDar8481311' is never used}} +} +@end + +@implementation RDar8481311 +@end -- 2.40.0