Issue 142660
Summary [clang-tidy] false positive on rvalue-reference parameters
Labels clang-tidy, false-positive
Assignees
Reporter yaoxinliu
    ```
auto f1(auto&& v) { // ok, no warning
    return v;
}

// Trigger warning: Forwarding reference parameter 'v' is never forwarded inside the function body. 
// cppcoreguidelines-missing-std-forward
template<typename T>
auto f2(T&& v) { 
    return v;
}
```

As per [P0257](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0527r1.html), `v` in `f2` shall be moved into the return value, so it is ok.

Moreover, `T&&` is a universal reference here; so, `v` is not sure to be an rvalue-reference, it may also be an lvalue-reference, in such a case, `v` should not be explicitly forwarded or moved. 
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to