[PATCH] D20054: Fix spurious warnings about unused private field

Olivier Goffart via cfe-commits cfe-commits at lists.llvm.org
Mon May 9 00:16:05 PDT 2016


This revision was automatically updated to reflect the committed changes.
Closed by commit rL268895: Fix spurious warnings about unused private field (authored by ogoffart).

Changed prior to commit:
  http://reviews.llvm.org/D20054?vs=56514&id=56530#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D20054

Files:
  cfe/trunk/lib/Sema/SemaExpr.cpp
  cfe/trunk/test/SemaCXX/warn-unused-private-field.cpp

Index: cfe/trunk/test/SemaCXX/warn-unused-private-field.cpp
===================================================================
--- cfe/trunk/test/SemaCXX/warn-unused-private-field.cpp
+++ cfe/trunk/test/SemaCXX/warn-unused-private-field.cpp
@@ -128,6 +128,7 @@
     int *use = &by_reference_;
     int test[2];
     test[as_array_index_] = 42;
+    int EverythingUsed::*ptr = &EverythingUsed::by_pointer_to_member_;
   }
 
   template<class T>
@@ -142,6 +143,7 @@
   int by_template_function_;
   int as_array_index_;
   int by_initializer_;
+  int by_pointer_to_member_;
 };
 
 class HasFeatureTest {
Index: cfe/trunk/lib/Sema/SemaExpr.cpp
===================================================================
--- cfe/trunk/lib/Sema/SemaExpr.cpp
+++ cfe/trunk/lib/Sema/SemaExpr.cpp
@@ -1736,10 +1736,12 @@
       !Diags.isIgnored(diag::warn_arc_repeated_use_of_weak, E->getLocStart()))
       recordUseOfEvaluatedWeak(E);
 
-  // Just in case we're building an illegal pointer-to-member.
-  FieldDecl *FD = dyn_cast<FieldDecl>(D);
-  if (FD && FD->isBitField())
-    E->setObjectKind(OK_BitField);
+  if (FieldDecl *FD = dyn_cast<FieldDecl>(D)) {
+    UnusedPrivateFields.remove(FD);
+    // Just in case we're building an illegal pointer-to-member.
+    if (FD->isBitField())
+      E->setObjectKind(OK_BitField);
+  }
 
   return E;
 }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D20054.56530.patch
Type: text/x-patch
Size: 1338 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160509/db7e5cbd/attachment.bin>


More information about the cfe-commits mailing list