| Issue |
115740
|
| Summary |
[clang-tidy] Regression, false-positive on `std::forward` in capture groups.
|
| Labels |
clang-tidy
|
| Assignees |
|
| Reporter |
Jhuighuy
|
Hi everyone,
Consider the following snippet of code:
```cpp
#include <ranges>
#include <utility>
template<std::ranges::random_access_range Range,
std::ranges::random_access_range Perm>
requires std::ranges::viewable_range<Range> &&
std::ranges::viewable_range<Perm>
constexpr auto permuted_view(Range&& range, Perm&& perm) {
return std::ranges::transform_view{
std::forward<Perm>(perm),
[range_view = std::views::all(std::forward<Range>(range))](
size_t index) -> decltype(auto) { return range_view[index]; }};
}
```
When I ran the latest released `clang-tidy` (19.1.3) over it with a check `cppcoreguidelines-missing-std-forward`, it produces a false-positive warning:
```
$ clang-tidy --version
Homebrew LLVM version 19.1.3
Optimized build.
$ clang-tidy b.cpp "--checks=cppcoreguidelines-missing-std-forward" -- -std=c++23
94 warnings generated.
.../b.cpp:8:38: warning: forwarding reference parameter 'range' is never forwarded inside the function body [cppcoreguidelines-missing-std-forward]
8 | constexpr auto permuted_view(Range&& range, Perm&& perm) {
| ^
Suppressed 93 warnings (93 in non-user code).
```
`clang-tidy` (18.1.8) works as expected.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs