[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
Wed Oct 28 12:42:52 PDT 2020
flx added a comment.
In D90042#2357078 <https://reviews.llvm.org/D90042#2357078>, @aaron.ballman wrote:
> In D90042#2356265 <https://reviews.llvm.org/D90042#2356265>, @flx wrote:
>
>> 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?
>
> Perhaps silly question, but are you instantiating `foo()`?
I think I added a full implementation of foo now, reverted the change, but am still not getting the negative case to fail. Can you spot an issue with the code?
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