<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/93959>93959</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            clang-tidy: bugprone-multi-level-implicit-pointer-conversion it too noisy for void* conversions
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-tidy
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          t-b
      </td>
    </tr>
</table>

<pre>
    Version:
```
Debian clang version 18.1.6 (++20240518023133+1118c2e05e67-1~exp1~20240518143227.130)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
```

CMakeLists.txt
```
cmake_minimum_required(VERSION 3.10)

project(test CXX)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

add_executable(test test.cpp)
```

test.cpp
```
#include <cstdlib>

int main(int argc, char** argv)
{
  char** p = nullptr;
 free(p);

  free((void*) p);

 free(static_cast<void*>(p));
}
```

Recipe:
```
cmake -B build -S .
run-clang-tidy-18 -p build -checks="-*,bugprone-multi-level-implicit-pointer-conversion"
```

Output:
```
Enabled checks:
 bugprone-multi-level-implicit-pointer-conversion

clang-tidy-18 -checks=-*,bugprone-multi-level-implicit-pointer-conversion -p=build /home/firma/devel/test/test.cpp
/home/firma/devel/test/test.cpp:6:8: warning: multilevel pointer conversion from 'char **' to 'void *', please use explicit cast [bugprone-multi-level-implicit-pointer-conversion]
    6 | free(p);
      |        ^
/home/firma/devel/test/test.cpp:8:16: warning: multilevel pointer conversion from 'char **' to 'void *', please use explicit cast [bugprone-multi-level-implicit-pointer-conversion]
    8 | free((void*) p);
      | ^
/home/firma/devel/test/test.cpp:10:27: warning: multilevel pointer conversion from 'char **' to 'void *', please use explicit cast [bugprone-multi-level-implicit-pointer-conversion]
   10 | free(static_cast<void*>(p));
      |                           ^
3 warnings generated.
```

I don't understand why I get the warning here, in addition the suggested ways to "improve" the code using a cast don't work.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUVk1v2zgQ_TX0ZSBBGsaSfNDBn0CwTVO0RdGbQYkTmRuJ0pKU41z62xeUrMTousGmtwqBxHDeDOc9zIwprFWVJsrZfMXmm5no3aE1uQuKWdHK5_wbGatazfiSRRsWLVkSnf-GfzdUKKGhrIWu4DhiIc7COEyAYcZwxXCFEd5E8ziLkMecM1zFcZyVSNGckjSIf9Cpi39MoPiGI6ZhzCOGi_GQr8JU5BhfwilL9slN0JVBrXR_CirdnyEHQ0JC00qqPbBrrTqNplttnahrkhtlvInhrreG4a5Q-iqn8b2-E4_0QVlnQ3dyV4FlIx5p3yitmr7ZG_qnV4Ykw-zb9vOX2_uPwMP4lcX47kz7N5WOYebIOlh___4TwJI3ru-Wf2332--f7j9_3a_v7z7dftj6793y4-YL3H_8yUlIuacTlb0TRU1TcP8Ky657BV8j-oK6CkGudFn3koDxdWmdrFXB-PYygNIOGqE0w8wvhalKhmsoD8IwXDJc-q3jaxLpalzAJaQDxjeg-7runGF8gjwY8nQGCtPm5H22McyOrZJDnAVcQ56B1gmnyn0prGN8Pfnw7RT_0jHdvKHYZypVR79qiaEqIFhB0ataQvAFwtFgeh0MjRI4JZ-DOIOgm0DlgcpHy_iGIQYDlXXRV51pNQVNXzsV1HSkOlBNV6tSuaBrlXZkgrLV57ZjiG_kfN-7rne_ynmrfd1ImNKYlHt3Dhcn_kT1heFv0oOgY3wzysVwd2gbYrh7UKYRDHfSuzPc-WI-fy5q-n_D-TJhfJn5MfEkjFa68sshwyFBOOcFF3k9mLYBhqkvZhirmWEKrvWbvsrGzdT3RFeTsAS9JaDTSBV8PQKbr96t9XwzdQJAAixdX-0WGB5vPT9svn2_LF6SOPnzdMkudXljUryq9FvyxBHjS0z_OH3i6FKfdwzI_1TVledFST6JYqEiTUY4kuEbs-oWpB9nqYNeSzLWCS3h6fAMt1CRA3egKSAcyJAXSGkQUirnhfV221cVWUcSnsSzHUVF1XSmPRJDHDBlK72kPowY1ZyOfWrNYziTOZcLvhAzyuM0TuMkSqJodsg54gMmYi4wWTxgFJEsuBBlUSzmUqQRn6l8vMzwOOYRjxdhmmLGCyyLMqEiTgt2E1EjVB3W9bEJW1PNlLU95Qu-mC9mtSiotsOFDPF1ivr5Pt_MTO6dgqKvLLuJ6uGC8hLGKVdTfuHD3z_DQTlwbQu6VfYZHloD50q4KF47602dH5zrhh8L3DHcVcod-iIs24bhzmd0_gQvV57dwNIy3I1Ejzn-GwAA__8voShs">