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

    <tr>
        <th>Summary</th>
        <td>
            Clang-Tidy 14 segmentation fault
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    ```
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 tst/src/core/supl/test_algorithm.cpp -p ../bld
1.      <eof> parser at end of file
 #0 0x00007f473a43fd01 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe3fd01)
 #1 0x00007f473a43da3e llvm::sys::RunSignalHandlers() (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe3da3e)
 #2 0x00007f473a440236 (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe40236)
 #3 0x00007f4738e42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007f4740e39d1b clang::Stmt::getEndLoc() const (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0xe39d1b)
 #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 0x00007f474106def7 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x106def7)
 #8 0x00007f474109f99c clang::ast_matchers::internal::BoundNodesTreeBuilder::visitMatches(clang::ast_matchers::internal::BoundNodesTreeBuilder::Visitor*) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x109f99c)
 #9 0x00007f474106d977 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x106d977)
#10 0x00007f474107b585 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x107b585)
#11 0x00007f47410794f9 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x10794f9)
#12 0x00007f474109f2b1 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x109f2b1)
#13 0x00007f4741075862 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1075862)
#14 0x00007f4741070284 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1070284)
#15 0x00007f4741071a2b (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1071a2b)
#16 0x00007f474106fc51 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x106fc51)
#17 0x00007f4741077fab (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1077fab)
#18 0x00007f474106feaf (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x106feaf)
#19 0x00007f4741041317 clang::ast_matchers::MatchFinder::matchAST(clang::ASTContext&) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1041317)
#20 0x00007f474254fd7c clang::MultiplexConsumer::HandleTranslationUnit(clang::ASTContext&) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x254fd7c)
#21 0x00007f4740a04834 clang::ParseAST(clang::Sema&, bool, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0xa04834)
#22 0x00007f4742514b57 clang::FrontendAction::Execute() (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x2514b57)
#23 0x00007f474246c3a6 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x246c3a6)
#24 0x00007f4742712423 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 0x00007f4742712175 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 0x00007f4742711183 clang::tooling::ToolInvocation::run() (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x2711183)
#28 0x00007f4742713d0e 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 0x00007f4738e29d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#32 0x00007f4738e29e40 call_init ./csu/../csu/libc-start.c:128:20
#33 0x00007f4738e29e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#34 0x00000000005ac1c5 _start (/usr/lib/llvm-14/bin/clang-tidy+0x5ac1c5)
[1]    93909 segmentation fault (core dumped)  clang-tidy tst/src/core/supl/test_algorithm.cpp -p ../bld
```

Code being analyzed: https://www.gitlab.com/theomegacarrot/supple

Steps taken prior: (starting cwd at git top-level)

```
CXX=/usr/bin/clang++ cmake -S cpp -B bld -DCMAKE_BUILD_TYPE=Debug
cd cpp
clang-tidy tst/src/core/supl/test_algorithm.cpp -p ../bld
```

Is this reproducible? Yes. Following the above steps I am able to reliably reproduce the issue.
The issue takes a consistent amount of time to occur. (27 seconds on Intel i7-10870H)

Exact clang-tidy version: (provided from system repositories, not a locally-built binary)
```
clang-tidy --version
Ubuntu LLVM version 14.0.0

  Optimized build.
 Default target: x86_64-pc-linux-gnu
  Host CPU: skylake
```

I am more than happy to supply any more information upon request.

Hopefully this is an issue already fixed in a newer version.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0WVFzoziz_TXkRWUXCDDmIQ-OHdekbnInNcls7T65Gmhs3QiJK4kk3l__lQSOLSaZb8bZTc0kBqTTp0-3Wm0BWrOtQLwM0qsgXV1AZ3ZSXT7u8GuDW1iCUtJcFLLaXwazcPgXroJwcX97vXi4JrorGmYIkKLbEoWtVIYYSXbGtDqIFwFdB3S9ZWbXFdNSNgFdc_58-DNplfw_LE1A10zrDnVA1wRERZgoeVchMTskpQK9IwWUT0ZBidPe_IOB8olUXdNaK-5WOA3C_F7JrYKGgNp2DQpjSZCSg9hODKv2xGhrTasyoOtSKrQXXcsDujaozQb4Vipmds20bFsyacl0GtB1waveRGRNBPESZR3E16QFpVERMARFRWRNasaxH0kCGockfA3DMMzqJIshiesqjIhzP14E8ULvdf_hXjFhnEOP1sOAzo-DFLxspDYKoQnoLKBLwoQJaE4COrcqsiKg69f5bDNLJpyJ7nWyFV3_4Pb2j7tJlEy1nEYBvQpf0TEIaH6kGI0oVhDjexS_deKBbQXwLyAqjko782eysEY8FtRnkYQ0np0F7WZ60PEp9BwTmtLwF6BLCzpzoG6Kh5mcYCYhxnkVFX2O9WI9mMb0n7ZorkV1K8tBrlIKbX7FvEvYsm2db8mgm7XjEUkHIv0PzGhaJB4R2akSb2UJhklx-sSuhSHBECooGGdmuHFlc1AvlOxE9WDAoFtGyx2WT_2Amonq2z0oFNaxeHkCe1P3vl8HdP7D7d77gC5sFv_A8g4EbFEdBs1GgxYPj0spDL6ewhzyr9PqTVBXV6xk64IJu8jf1r5TsRfJU3E2UjGqivCf0qp0Hz0xQJtNA6bc2VXk7tzZqzUTFaqTG99Qd9yc6HGWt9YZz9vsNHmjcFZhnZ2ZkcNsD37uw-d1npfkp94zYVAJ4IOiVsr_lRXqR4V41TH-psoz08w4aexG8XNJfxn0DwsqlZdOv6-Dc9PTIR_LnGefkTnPjjLbsh368FmRztOz4d1sDz4awedJfb44brYHT8dJQovoE9rTIvLg4xH7dD6j57O3sz34ZAQf0nlyPryd7cGnI_gIaHE-vJ3twc9GiVmX6fnau9ke_Ki8ZFkNn2BvZ3vw8zF7hPoT7BFqD360apPIOvR7tds9Xjw8-hXquH15pfz3OTtKp5ypVwpomtRV5lXcu44b1nJ8XUqhu-bAs2_kHhUIzV178F0w86-QHjh5pL0CE0KYzGOvc7m3nfUPKj5gA0NrUEjJj3_PpdYb9phRX84oKVIvBdbKSiKqRWlF6-9dv2LZGfzlnvh9lZwpj4tXyGgyK2OYnXJZyqZlHNWN0AZEiR6bgaAn4Ij8p6La0_H4epWRZhFNaOx1UlJy9j6XNZRGqkOf1Ykb8Ty0rQGda1MN30d2oLDatEb5fedRiLdZtgf1Osg144cmc-hB_yvs_fKLXQDABKqvLSqHrH-EXjHYCqkNK9_W2Gf6iUE5T1q_1S-KbI7w-_1gP88Dno1jFmXphzF7lJKfavxesModqI9a_Uqx50MB6mM2zPq1eHwY5s9E8jNRijKvb6LZSMwomn-8AD4Q83NVpLfpkZqPSMVViB-SWtr7ltkpn595cCgln8t3y8kjnY_yPQ6j6oMvZZ3oSbskn7875m3A6X62_FiEY2quwEABGr3vpccDkoVSsP-GdRAv33JwsylfX6OovyhAs3KjjXLgS7s4Anoca683RgEz-vB0lNHAuc0QqY7PyfDfp3IjjOo0e8ZvWC-FuXdL4Pj4uR46lq_PqDjsbTl82GuDzYDk76inyA-OvfXynO-gfexOg_t2MNb_pEVIAd8PbnkI3B1Y7Lk7_FqSUY057yigt-sRi_zTIppXeUg2G5u3G21AmU0JnG8aYIJMLaK2ae3OCPVeV9jqgK5Fa_iQ7ONJ010QL9J5EC-i2dEqHVvFJCRuDhPMjA31Hy36xKFPSwtHLSgNj6Dxe6CeK-958S54nOWW9hE78eMHZVSmpEc9Iwxu-jEM6VUUpCtCCMnjPMyJxm2DwvRHWDV03NkopUJ3_Is2tcg_d8Q7Oubufy9lhaRAJrYEBPD932hX5-iU--XlZbplhsPhpNvsUDa4hdKdovc02sMB8eEYG1tNDDyhIK1idpUviOt4QBlrrnypCBiyZYYY2U44PiM_avUe4-Wffwbx6i0GJ5oH9CqgV6Rs4AnJ5IE4_69IwSsyWS3vFv9zvbn6fnO72jz-dX8dxKsVFt22By0rO3r4_K9KfaOJ2TFNFLZKVl3JCo5BvCZ_oZ6SteRcvlhdzA4JFPIZiXYS3hBoCBQciZFEIWdQ8P0bSP8mwb1jGN4fPB6unfiagCsnTBsUhkAjO2GIrIlhjUOUZdmpqY0MzYjGUopKEynIjTDICcsmUTjPwi-jyFy_QmlOU_MZle73egvVKvnMKqxIrWRDtCvG7h2KO5JiqG2pE9IQIHYP4Hw_KTrGDSmYALU_GvN1PLE3mRwsuiffi06Yjtze_nF3oEKiZBpOvQgQ8rU1rGF_Y0WsvWqQjKywX34G1BaNdWLY49vyZJsfML5Ibcjy_rsdpp_2HJ7wZ1G34WvsmjY7EGQHbbu3ursVsycg9v1TJmqpmr4WdK0UROH_d6jN9BTsi2yx7jjf95nENAExBBu4Qqj2pGavWBEmCBCBL6gOckwvqsu4yuMcLvAymmU0mcVJnl3sLiGdx2lGZ3GazfIsnse0jmusEkjzIoohuWCXNKQ0onEUplEUZ9M0TWf5PCzDFGc0wihIQmyA8aktiFOptheO02WaZ7PwgkOBXLv3cJQKfOkJB5QG6epCXboiWnRbHSQhZ9roI4phhuOla3EmdqskUfJO0bzoFL88_7WcI_mfAAAA__-212ey">