<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/139241>139241</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang-tidy "cppcoreguidelines-pro-bounds-pointer-arithmetic" false negative
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-tidy,
false-negative
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
adesitter
</td>
</tr>
</table>
<pre>
❯ clang-tidy --version
LLVM (http://llvm.org/):
LLVM version 20.1.2
Optimized build.
❯ cat g.cpp
#include <span>
auto g1(std::span<int> s, std::size_t i) {
// pointer arithmetic **not** detected
return *(s.data() + i);
}
auto g2(std::span<int> s, std::size_t i) {
auto p = s.data();
// pointer arithmetic detected
return *(p + i);
}
❯ clang-tidy "--checks=-*,cppcoreguidelines-pro-bounds-pointer-arithmetic" -quiet g.cpp -- -std=c++20 --gcc-toolchain=/usr/local/gcc-15
4 warnings generated.
.../g.cpp:11:16: warning: do not use pointer arithmetic [cppcoreguidelines-pro-bounds-pointer-arithmetic]
11 | return *(p + i);
| ^
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJykVMGSozYQ_Zrm0iUKWoDhwAGb8WlTueWakqUerARLBIlJ7X59Stiz41RtNpUsBxCt1_1ei0erEOzkmHuoj1CPmdri1a-9MhxsjLxmF28-9_BC0I0wnFHPyk0iWvMZhXjjNVjvoBg-ffrlJwRqrzEuIAegM9B5nt9uuV-n_a1L4WJA3KGPTKQiL3Pa4z8v0d7sFzZ42exscigS_olZRZxyvSyYwiSt0_NmGEGewqIcyJd7htqix6kEakM0iVQO9_2TdRHkCwagE37s2S_8a0QL1CEcjrsUxHsDuHjrIq-oVhuvN45WI9AANDgf7ws0HFlHNo_EleO2ujuqDblRUQG1e3E67iwgEwkcxme59GNy9yILghzxmfNO9f1-vqd_-SfR3_QDEAmhr6x_DyBHsZc46WXRfuVps4Zn6ziIZfXi4jdngnjIER9ygAjFH5vl928tBIq9-VEDHYGOVKAQk9Yiej_rq7IO5Ah03sKaLOe1moHOCVDWUAwV_qlWZ90UcGLHq4q8WyvP8wRLHCCHsky3BuTwDk9L49H5iFvgbxqhPv7X5urxfspliXA44b-e9474Cn26oE5mz0wvTSc7lXFfHqrm0DZ11WTXnsrONE1jKqo67uhiiIu6bk1bFLKiRmW2p4Lqoi66sqCuaHKlqX2tzKuiuioPlYaq4Juyc_7-D2c2hI37UnZUldmsLjyHfWYQfVgAiIBOQPSq5sDC8aSifeMUrsds7VMxcdmmAFUx2xDDR_lo48z93930P7yzE-M7cbatc59GUvg6kyYbr9sl1_72GFCPRyr9G-sIdN47DUDnR7NvPf0VAAD__4CljCs">