v.g.vassilev added a comment.

In D143524#4150286 <https://reviews.llvm.org/D143524#4150286>, @aaron.ballman 
wrote:

> In D143524#4148024 <https://reviews.llvm.org/D143524#4148024>, @v.g.vassilev 
> wrote:
>
>> Indeed the warning is noisy but it will potentially fix broken code which 
>> were unable to diagnose before. Especially that in some cases where static 
>> templates in header files are used as an idiom. In theory this approach can 
>> extend to cases described in https://wg21.link/p2691 where our inability to 
>> diagnose/fix these cases leads to some design decisions which may not be 
>> optimal.
>
> We need to ensure the diagnostic is not so noisy that people disable it, 
> though. That means a low false positive rate and a straight-forward way to 
> silence the diagnostic on a case-by-case basis.

I agree, so far I have not seen false positives. All issues (except for 
`-Wctad-maybe-unsupported` as mentioned above) seemed real. Do you have a 
particular example in mind?



================
Comment at: clang/test/SemaCXX/warn-func-not-needed.cpp:13
 namespace test1_template {
-template <typename T> static void f() {}
+template <typename T> static void f() {} // expected-warning {{unused function 
template}}
 template <> void f<int>() {} // expected-warning {{function 'f<int>' is not 
needed and will not be emitted}}
----------------
aaron.ballman wrote:
> v.g.vassilev wrote:
> > aaron.ballman wrote:
> > > Why is this unused? `f<long>()` in `foo()` should cause this to be used, 
> > > right?
> > > 
> > > How should a user silence this diagnostic without disabling it entirely?
> > Nobody uses `foo`.
> Ah, good point on `foo` not being used, but the question still stands -- how 
> does the user silence this diagnostic? It's not at all uncommon to have a 
> primary template with specializations where the TU only uses either the 
> primary or a specialization, but not both (and certainly not all 
> specializations).
@philnik used `[[maybe_unused]]` which seemed reasonable to me for silencing 
the diagnostic. Maybe take a look at the changes done here: 
https://reviews.llvm.org/D144667


Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D143524/new/

https://reviews.llvm.org/D143524

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to