[PATCH] D90042: [clang-tidy] performance-unnecessary-copy-initialization: Check for const reference arguments that are replaced template parameter type.

Felix Berger via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 27 06:20:20 PDT 2020


flx added a comment.

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

> In D90042#2350035 <https://reviews.llvm.org/D90042#2350035>, @flx wrote:
>
>> I should note that I was only able to reproduce the false positive with the actual implementation std::function and not our fake version here.
>
> Any reason not to lift enough of the actual definition to be able to reproduce the issue in your test cases? Does the change in definitions break other tests?

I poured over the actual definition and couldn't find any difference wrt the call operator that would explain it. I would also think that:

  template <typename T>
  void foo(T&& t) {
    std::forward<T>(t).modify();
  }

would be a simpler case that should trigger replacement, but it doesn't. Do you have any idea what I could be missing?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D90042



More information about the cfe-commits mailing list