================
@@ -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">,
----------------
guillem-bartrina-sonarsource wrote:

Yes, `select_special_member_kind` supports more than the default constructor: 
all other special members (copy constructor, move constructor, copy assignment 
operator, move assignment operator and destructor).

However, this PR was originally to refine the diagnostic message for **all** 
constructors, not just the default, copy and move ones.

With your approach, which only uses `select_special_member_kind`,
```cpp
struct S {
    S() = default; // <---
    S(int) {}
    S(float);

    S(const S &) {} // <---
    S(S &&) {}      // <---
}
```
Only the message will be refined for constructors with an arrow, because **the 
other constructors are not considered “special members”**.

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