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

    <tr>
        <th>Summary</th>
        <td>
            [clang-tidy] Crash with readability-non-const-parameter and K&R declarations
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          mkmvzlb
      </td>
    </tr>
</table>

<pre>
    The simple legacy C-code below crashes clang-tidy, at least version 10, 12 and 16:

```
static int f();

int f(p)
  int *p;
{
 return *p;
}
```

Stack:

```
$ clang-tidy -checks=-,readability-non-const-parameter legacy.c
Error while trying to load a compilation database:
Could not auto-detect compilation database for file "legacy.c"
No compilation database found in /home/michael/Projects/clang-tidy-bug or any parent directory
fixed-compilation-database: Error while opening fixed database: No such file or directory
json-compilation-database: Error while opening JSON database: No such file or directory
Running without flags.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: clang-tidy -checks=-,readability-non-const-parameter legacy.c
1. <eof> parser at end of file
2.      ASTMatcher: Not currently matching
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  libLLVM-16.so.1    0x00007f9df79c975a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 58
1 libLLVM-16.so.1    0x00007f9df79c7994 llvm::sys::RunSignalHandlers() + 84
2  libLLVM-16.so.1    0x00007f9df79c9f2b
3  libc.so.6 0x00007f9df6242990
4  clang-tidy         0x00005f814fa1e5d9 clang::tidy::readability::NonConstParameterCheck::diagnoseNonConstParameters() + 249
5  clang-tidy         0x00005f814fa60192 clang::ast_matchers::MatchFinder::matchAST(clang::ASTContext&) + 914
6 libclang-cpp.so.16 0x00007f9e00a5771c clang::MultiplexConsumer::HandleTranslationUnit(clang::ASTContext&) + 44
7 libclang-cpp.so.16 0x00007f9dfedddf32 clang::ParseAST(clang::Sema&, bool, bool) + 850
8  libclang-cpp.so.16 0x00007f9e00a1d2a9 clang::FrontendAction::Execute() + 89
9  libclang-cpp.so.16 0x00007f9e00998184 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 724
10 libclang-cpp.so.16 0x00007f9e00c34555 clang::tooling::FrontendActionFactory::runInvocation(std::shared_ptr<clang::CompilerInvocation>, clang::FileManager*, std::shared_ptr<clang::PCHContainerOperations>, clang::DiagnosticConsumer*) + 389
11 clang-tidy 0x00005f814ffd3226
12 libclang-cpp.so.16 0x00007f9e00c342e2 clang::tooling::ToolInvocation::runInvocation(char const*, clang::driver::Compilation*, std::shared_ptr<clang::CompilerInvocation>, std::shared_ptr<clang::PCHContainerOperations>) + 290
13 libclang-cpp.so.16 0x00007f9e00c33311 clang::tooling::ToolInvocation::run() + 1329
14 libclang-cpp.so.16 0x00007f9e00c35bb2 clang::tooling::ClangTool::run(clang::tooling::ToolAction*) + 3842
15 clang-tidy         0x00005f814ffcf249 clang::tidy::runClangTidy(clang::tidy::ClangTidyContext&, clang::tooling::CompilationDatabase const&, llvm::ArrayRef<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, llvm::IntrusiveRefCntPtr<llvm::vfs::OverlayFileSystem>, bool, bool, llvm::StringRef) + 1049
16 clang-tidy         0x00005f814f3497ea clang::tidy::clangTidyMain(int, char const**) + 10474
17 libc.so.6 0x00007f9df6228150
18 libc.so.6          0x00007f9df6228209 __libc_start_main + 137
19 clang-tidy         0x00005f814f344c35 _start + 37
zsh: segmentation fault (core dumped)  clang-tidy -checks=-,readability-non-const-parameter legacy.c
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysWF1v4jwW_jXmxgIlTgLkggsmLXpndzqDSnel3RvkOCfE7zg2sh2mzK9f2U4g7bRDd_dFiA_7-Hw85znHdqgx_CABVij7hLK7Ce1so_Sq_d6efopyUqrqvHpqABveHgVgAQfKzriYMlUBLkGoH5hpahowmAkqD1PLqzMiBaYWC6DG4hNow5XEceSGY4KprHA8R8kaRXcoGj7nUf_2f42lljPMpcU1IktEcpR8GssPM0c35Uewl0ZkfbyKLvofWIPttHw9e_em7fC5s5R9_72TiKSjoPGUNcC-G5TcTREpNNCKllxwe55KJadMSWOnR6ppCxZ0j-SMBVX3WiuNfzRcALb6zOUBW4WFohWmmKn2yAW1DsWKWlpSAxfPCtWJCktlMe2smlZggdk3l-BaaVw7C4iQi3lCgp6v6r1Fnawwd9htGtUCIpuWs4aCQGSz1epPYNYgsrkCMS27A1YaU3nGR6pBWlxxDcwqfQ62av4M1XRkbjoKC4-xUEeQDgy_Yhw8_qqw6VgTAlL6tYk_jcf84xb-tvv29b8x8NhJv-4Ht43qLK4FPZhZmNt-uV_v7rHpypZbTLEDRMNRaeuy2lh7NC5_ZIPI5sBt05UzplpENkKchq_pMWCLyIYb04HD2JcOl0x0FWDbQCg9XFL23WrKYDaiLq669nhhSTTD_rXV6qBpi6k-dC1I6_z4qzgczzBKClA1Su5d4g1o1wVAVljVHsYgR3pf1runB2pZAzrAbTHrtKOLOOPWTXB5eB3QBW5zbkslsKQtGIzIEqTpNOCz6nBDT4A9hEGI_wTtCHxWncbb9dMfLpsGrEcQ5IlrJR0W-EQ1RvPoy5d_Pux3_3r49O3L53_fP-7dEjSPXOqOyvUYqzC3viUN6GIseOnWTeP5zKhZ7OKLnqMoihZ1XtWLnOWLjHqv3Kpkbc4m_NhqLq0P8MmlEJHlVUjTH3tlrAbaIjJ37ZNLZxgj8glnyx7227YXeZ6-Zfuxkzt-kFT8QWUlQJvQar36Zdpn6yOx1aQM0omXZk5uPhaak5Tked83Uzym3PAK0lm9jNOaxpBVeZAKrvptJYByJWUY-Kpk4Yi5HXhZOA6HuYrTg1QGfpEZh0rSfgvJbjs2j-KcjB2jxu7bQOMeVU_qDZeVJzZK1n56vXtCZDlauN49FUpaeLY-t8GVPO5hn3scvTPsePS4jwCFKKLZYhGzsScPnbD8KODZRdq1g_WQ2ydNpQmt8B_SsfemK2nvyeK3nlQ1VFVVJy8w2bri_yXgHbS0p3GplLh-94TLenos8c3Y44rQF_TYaOe_rNbMRRjG7p-BdRbGnO7znN-0kOfLeJmOLRR-LwH9WRpLJYMXNnqzL8J95dIV2AXpkY2jW26wJM2y7EUdKCX42yY2NGxPoUo6-VmeFKO9Y8ZWffE3VEO1P1qNkuLN-C6rknuXo3FIXMADlfQAGpG1m7ypdlv84ahFuQT97Qjaaza_qr4LhWo5u7DXWQiIJUPi4nhcoOPCrKuEkHkvRT6AKwHyLq5PSokxDm8Byhqqsd8QeyhGyirNT0P5FdczyEcxezcV_w_afasbenCc3MYoSQa8P47RqNriZDiax-ltY1lZvp-Qwo07i2M7v_NsKLoRhdL-oBtnt5p8zWqSvrf7dDI44685yzdlLgLjplq8H9yVIXfDqbsnll933bjXWtPzI9QoKS5U2O_Z83Mchz8lNZztjdVeeeE4-oI3bmBvNeXu4BemXzGLCuFSqvRoPrxfePJZWt0ZfoJHqAtpt56I1-lT3e-F306gBT27xrE7Gwttr-nlBjDWvPPOuyAHGkXD9hzPb2UuSfMF0Lczx4asPFDu6OOPUgV-VcfrkdnF0KcX7x1qyDIedq14ORJ65dxFmkQ53u-d3N5Yqt3Jwd-sXLEsej357SBTlmQ4aAjk7tf-NI07Shs4uPNsuMjVtBNOasmUBn-GhsrF-Fed-i934km1Sqo8yekEVvGCxMt4ns_zSbOCPCsZnddpmiZ5maQpKeN0uSghzZbLsl5M-IpEJI0WJI0jkpN8Fs_jOoVkTqKIQcwilEbQUi5mjiYzpQ8TfyVaxVGUpNFE0BKE8U8wCBk_hSAou5volb8LlN3BoDQS3Fhz1WO5Ff7Zx2hZdocLf69ydw18Cw13Jfs7IvNHXAETtG-5k06L1f9-0esDO63IfwIAAP__Falw0g">