================
@@ -402,7 +402,7 @@ def warn_unused_function : Warning<"unused function %0">,
   InGroup<UnusedFunction>, DefaultIgnore;
 def warn_unused_template : Warning<"unused %select{function|variable}0 
template %1">,
   InGroup<UnusedTemplate>, DefaultIgnore;
-def warn_unused_member_function : Warning<"unused member function %0">,
+def warn_unused_member_function : Warning<"unused %select{constructor|member 
function %1}0">,
----------------
AaronBallman wrote:

> However, note that only default constructors are considered “special members” 
> (see CXXSpecialMemberKind).

It supports more than just a default constructor:
https://github.com/llvm/llvm-project/blob/d0fb83531b07f608da064ed98e6213f32a5544e9/clang/include/clang/Sema/Sema.h#L422

So I was thinking something more like:
```
def warn_unused_member_function : Warning<
  "unused %select{member function %1|%sub{select_special_member_kind}1}0">,
  InGroup<UnusedMemberFunction>, DefaultIgnore;
```
and
```
DefaultedFunctionKind DFK = getDefaultedFunctionKind(DiagD);
if (DFK.isSpecialMember())
  Diag(DiagD->getLocation(), diag::warn_unused_member_function) << /*special 
member*/1 << DFK.asSpecialMember()) << DiagRange;
else if (isa<CXXMethodDecl>(DiagD))
  Diag(DiagD->getLocation(), diag::warn_unused_member_function) << /*member*/0 
<< DiagD << DiagRange;
else
  Diag(DiagD->getLocation(), diag::warn_unused_function) << DiagD << DiagRange;
```

https://github.com/llvm/llvm-project/pull/84515
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to