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

    <tr>
        <th>Summary</th>
        <td>
            Clang Tidy Crash
        </td>
    </tr>

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

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

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

<pre>
    Hello, I was experimenting using clang-tidy (version 14) and ran into a crash.
I can't reproduce it on my machine directly, only using github actions or `act`.

I've tested both with clang 14 and GCC 12.3, I'm unsure if that is relevant for this issue though.

The backtrace is located [here](https://github.com/F0bes/gifscript/actions/runs/8494915473/job/23270632256)

<details>
<summary>Embedded text version</summary>

```
Error running 'clang-tidy': PLEASE submit a bug report to [https://github.com/llvm/llvm-project/issues/](https://github.com/llvm/llvm-project/issues/?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) and include the crash backtrace.
Stack dump:
0.      Program arguments: clang-tidy -checks=-*,readability-*,modernize-*,performance-*,portability-*,bugprone-*,clang-analyzer-* --extra-arg-before=--driver-mode=g++ /home/runner/work/gifscript/gifscript/backend/c_code.cpp -- /usr/bin/g++-12 -I/home/runner/work/gifscript/gifscript -I/home/runner/work/gifscript/gifscript/build/_deps/fmt-src/include -DGIT_VERSION=\"84ab\" -Wall -Werror -Wno-unused-const-variable -std=c++2b -MD -MT CMakeFiles/gifscript.dir/backend/c_code.cpp.o -MF CMakeFiles/gifscript.dir/backend/c_code.cpp.o.d -o CMakeFiles/gifscript.dir/backend/c_code.cpp.o -c /home/runner/work/gifscript/gifscript/backend/c_code.cpp
1.      <eof> parser at end of file
 #0 0x00007f25ecc3fd01 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe3fd01)
 #1 0x00007f25ecc3da3e llvm::sys::RunSignalHandlers() (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe3da3e)
 #2 0x00007f25ecc40236 (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe40236)
 #3 0x00007f25eb642520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007f25f3639d0b clang::Stmt::getEndLoc() const (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0xe39d0b)
 #5 0x0000000000a625b4 clang::SourceLocation clang::tidy::readability::BracesAroundStatementsCheck::findRParenLoc<clang::IfStmt>(clang::IfStmt const*, clang::SourceManager const&, clang::ASTContext const*) (/usr/lib/llvm-14/bin/clang-tidy+0xa625b4)
 #6 0x0000000000a61db0 clang::tidy::readability::BracesAroundStatementsCheck::check(clang::ast_matchers::MatchFinder::MatchResult const&) (/usr/lib/llvm-14/bin/clang-tidy+0xa61db0)
 #7 0x00007f25f386def7 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x106def7)
 #8 0x00007f25f389f99c clang::ast_matchers::internal::BoundNodesTreeBuilder::visitMatches(clang::ast_matchers::internal::BoundNodesTreeBuilder::Visitor*) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x109f99c)
 #9 0x00007f25f386d977 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x106d977)
#10 0x00007f25f387b585 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x107b585)
#11 0x00007f25f38794f9 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x10794f9)
#12 0x00007f25f389f2b1 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x109f2b1)
#13 0x00007f25f3875862 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1075862)
#14 0x00007f25f3870284 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1070284)
#15 0x00007f25f3871a2b (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1071a2b)
#16 0x00007f25f386fc51 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x106fc51)
#17 0x00007f25f3877fab (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1077fab)
#18 0x00007f25f386feaf (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x106feaf)
#19 0x00007f25f3841307 clang::ast_matchers::MatchFinder::matchAST(clang::ASTContext&) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1041307)
#20 0x00007f25f4d4fd7c clang::MultiplexConsumer::HandleTranslationUnit(clang::ASTContext&) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x254fd7c)
#21 0x00007f25f3204824 clang::ParseAST(clang::Sema&, bool, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0xa04824)
#22 0x00007f25f4d14b57 clang::FrontendAction::Execute() (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x2514b57)
#23 0x00007f25f4c6c3a6 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x246c3a6)
#24 0x00007f25f4f12423 clang::tooling::FrontendActionFactory::runInvocation(std::shared_ptr<clang::CompilerInvocation>, clang::FileManager*, std::shared_ptr<clang::PCHContainerOperations>, clang::DiagnosticConsumer*) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x2712423)
#25 0x0000000000bb78ea (/usr/lib/llvm-14/bin/clang-tidy+0xbb78ea)
#26 0x00007f25f4f12175 clang::tooling::ToolInvocation::runInvocation(char const*, clang::driver::Compilation*, std::shared_ptr<clang::CompilerInvocation>, std::shared_ptr<clang::PCHContainerOperations>) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x2712175)
#27 0x00007f25f4f11183 clang::tooling::ToolInvocation::run() (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x2711183)
#28 0x00007f25f4f13d0e clang::tooling::ClangTool::run(clang::tooling::ToolAction*) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x2713d0e)
#29 0x0000000000bb301d 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) (/usr/lib/llvm-14/bin/clang-tidy+0xbb301d)
#30 0x00000000005b02ae clang::tidy::clangTidyMain(int, char const**) (/usr/lib/llvm-14/bin/clang-tidy+0x5b02ae)
#31 0x00007f25eb629d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#32 0x00007f25eb629e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#33 0x00000000005ac1c5 _start (/usr/lib/llvm-14/bin/clang-tidy+0x5ac1c5)
Segmentation fault
```
</details>

You should be able to test it yourself by checking out this branch https://github.com/F0bes/gifscript/tree/broken-clang-tidy
[commit sha if/when the branch gets deleted in the future](https://github.com/F0bes/gifscript/commit/84ab0cb9caa1811f994365c69dad05a2ab0a2720) and running the github action 'branch-build'


Hope it's enough information. I couldn't provide a better reproducible sample.

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0WV9z46jy_TTkhZJLQn_9kAfHjndSNdlNTfLbrd-TC0HLYkcCX0CZeD_9LZASG08yM3H2pmZsC4nTh9NN0wJqjNhKgEuUX6F8dUEH2yp9uY5rMBe14vvLT9B1CpElvsHfqMHwtAMtepBWyC0ejPtkHZXbyAq-x4hUj6CNUBInGSJzTCXHmkospFWYYqapaWcoXqF4cYMZlYiUFmvYacUHBlhYrCTu97inrBUSMBcamO32joGS3X4yuRW2HWpMmRVKGqw0RkVMmUVFPKFPNhApHwFbMBY4rpVt8Tdh25EyTjLP77flEidklvpRIlL2eJBm0IBFg21LLRYGa-jgkUqLG6WxbYXBwpgBsG3VsG0Dmw8t4Jqyr1ZTNyKDO8WoM4_yqxY0oHyFSNVauzMoXSCyRmQ9jmfGVI_I2qvvGxvDtNhZRNbTSBFZ68F_Vdk8myd5VqaIrP9WNSJrkpIyLlJC8gKR-TEllC45WCo6g9LrlyYz9D3Ve5ReX_c1cA4cW3iyePIgSpeIrA8PBYBFPP3zl9daK431IKVzDiLlISQQKVG6wHefrxf319gMdS8sprgets7tSltslVfmbT267vH5K9pp9Tcwp4jX3ynxUz1_1j9d_welK2EQydOFb0bkarpUO5CIXBmlrb8edtz5MuJg2HN8C8m6gbtYgDHAD-6fAuPeUvYV86HfOYa-ycXp_E6rraY9pno7uDnlBnA8nSLWAvtqULqKEFkgstRAOa1FJ-x-aukVBy3FPzBd70A3SvdUspcWpW3Ypx62O63k8wOjQSppt_8HtGvEUQRPVtOI6m1UQ6M0OA4R1-IRdORsonS1ReQKkSuMyLpVPYyxKUEjsv6m9NeTCD7-7fQByRFZsw1THGZst8NR5JAG4_rXQrouo4EoITi6eaeV9_dwZgfROVYbDjsXGk1vI6OZi5bJx9Hqt5uHzZ_XX-5v_vgdpSuULxEhVUbr8ReO_qJdh6O_wE-J6C-pokEOBnjElDQ2eqRa0LoDHBnLUbpi4xhJjaPbFY5uH_Dyln6FtejCHDDjQr-h3Ezh6HZ9Tr8Zx5E6zyD7l9w-zobEzQaULkE1KL3GO6oNaEwtBsmxanAjOhifxIikMY6f4jiOy4bkwFja8DjBfpanC5QuzN6MP-60kNbPvQc3GRGpDg9p-m2jjNVAe0QKl_qFtG5GI1K5ZCFcRn2qik2RRZ2Qw1O0lcN44_PnP2-jJJsZNUsQuYqfwDN4ybmOYnJCkdMUXqP4ZZD3Yitp94lK3oE23vyZLJyRgAUJWWQxSYuzoH3PADo9hq6LjOQk_gVo5kALD-q7BJjZEWaTFumcx_WYDkex7m1vx19bsNeSf1ZsksvPrV8x71OdC2E3tmzSzdkJiOQTkfGPFiSvs4CIGjSDz25dd6XO0R2_5I0BdkjVY8OVi0Gz0GqQ_N5SCz7jL12GHx9ohORf7qgG6QaWLo9gb5px7NeIVN81j6Mfc_n3LG-ppFvQzw8VJw8t7h-WSvp1_wDzHH9jMh4F9cunk2xKzsdL_FX8NIoUqFicqJjwOv63tPILYygGNXbTU8taN4t8y627WgvJQR81fAEzdPZIj7NG6wYTjLYMgrcqODTlmRGZxL53AF-F8PNmPmf4h6MX0oKWtJsUdVL-rjiYBw1w5Ra6Z1UehRHWS-NWgB9L-sugfzpQpYNwer8OfpiBDvNTmeflR2SelweZXdqOQ_iyzqv8bHjfO4BPTuDnWXO-OL53AE9Og4TUyQe0J3USwKcn7POqIOezd70D-OwEPiZVdj686x3A5yfwCSX1-fCudwBfnARmw_Lztfe9A_iT9FKWDf0Ae9c7gK9O2QNtPsAeaBPAn8zaLEnj8sfZ67vc7W8v7h_CDHVYvoJU_n7OntIxZxKkgoxnDS-DjHs7dFbsOnhaKmmG_pnnWMg9aCpN58uD_5PC_k9Ik9xzCkiHCYbEWUWCyuXOVdbfqXgPPZ1Kg1qp7vB9LjXqDQfMSChnktV5EAJr7SSRfOF3Osa26ydgg4VfrolfV8mbCrgEiSxjBUtpccxlqfqd6EDfSGPdm3TAZiIYCHhC_kNezTydgG-QGbMmIRlJg0pKqU68zmVNmVX6uc4a5I18nMpWRCr_CurfR1qqgW92Vod150GIl16uBg0qSPfmOBWZUw36U9i75Sc3AaiQoP_Ygabj5tZ30CtBt1IZK9jLHPtIPUFKr1wgbVjq13VZAX1_PTj2C4CLU58lZf6mzx6U6o41fs1ZrKX6rVJ_3Jg59tnU69f88aabP-LJj3gpKYO6iZQnYiZJ9fYEeEPMj2WR0tsMSFUnpFIew5uklq7dMTvm86MRPKeSj8W74xSQnp_Eexon_I2XskGOpH2QV68-8_LA8Xq2fFuEQ2iuqKU1NRC8lx42SBZa0_0XaFC6fInBzYY9PSXJeFFTI9jGWO3Bl25yBAHrGjZWU2HN8-2TkKad35hX-nAfT_9DLjfS6sGIR_gCzVLaOz8HDrcfm6lk-eMRdEf3Lh_e742FfkIKl9Rj5HtP3w3znJfQ0XnH3n3ZGRv_8jomFF73Lnv23C112JXf_VrikyRz3l7AaDcgloTbRWTO5-_cLvJdAkxyiglZjDcb121jLNWupBTyvVYgC62koaSUJSzHI_4ZyvjuL_j3sO1B2nEXqaFDZ189XhlPYr47wfGf_68GbFo1dBzXgP3OslX-wAsLi_dq0Aa6Btd77LdMhNxiNdjxCKvWVLIWv_MoymoANz6tvoKMjgY4ssqvmOp7YbFpKRYNIutvLUh_ODLZ24I1mEMHFjgW461msMOZR2OjOX8kRuuY1XNGaVIlSTOfZ2mRs2LOKY9zSmgdU1L6PcfxXHI6r3L2gwNFjEg5co2mE4EyOPzyn5_UDrCzWxoMUg3bFgvpj14cxAzfYOa8Mp5w7rR6FBwwxTVYC_rlyFM4hxna77rns6ILfpnyeTqnF3CZlElS5XFRpRftZclpVceUJqyqoC6SqsnzhEJZz4uUzRN6IS5JTLI4TZOYxFmWzhjNoeIpZGTO0ixJURZDT0U3c1E6U3p74U-7LqsyKbOLjtbQGX8STMiYMwhB-epCX_qoroetQVncCWPNAcEK28GlXwewSyd4qalpLwbdXZ5_JOcJ_TcAAP__L6Y-qQ">