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

    <tr>
        <th>Summary</th>
        <td>
            [clang-tidy] bugprone-forwarding-reference-overload crash
        </td>
    </tr>

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

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

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

<pre>
    ```
$ clang-tidy --version
Ubuntu LLVM version 16.0.0

  Optimized build.
  Default target: x86_64-pc-linux-gnu
  Host CPU: cascadelake
```
```
$ wget https://boostorg.jfrog.io/artifactory/main/release/1.79.0/source/boost_1_79_0.tar.gz
$ tar zxvf boost_1_79_0.tar.gz
$ cd boost_1_79_0/boost/
$ clang-tidy -checks=bugprone-forwarding-reference-overload beast.hpp
Error while trying to load a compilation database:
Could not auto-detect compilation database for file "beast.hpp"
No compilation database found in /home/sweemer/boost_1_79_0/boost 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=bugprone-forwarding-reference-overload beast.hpp
1.      <eof> parser at end of file
2.      ASTMatcher: Matching 'bugprone-forwarding-reference-overload' against:
        CXXConstructorDecl boost::beast::websocket::detail::teardown_tcp_op::teardown_tcp_op<Protocol, Executor, Handler> : </usr/include/boost/beast/websocket/impl/teardown.hpp:47:5, line:61:5>
 #0 0x00007f4a88917ce1 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-16/bin/../lib/libLLVM-16.so.1+0xf05ce1)
 #1 0x00007f4a88915a1e llvm::sys::RunSignalHandlers() (/usr/lib/llvm-16/bin/../lib/libLLVM-16.so.1+0xf03a1e)
 #2 0x00007f4a8891820b (/usr/lib/llvm-16/bin/../lib/libLLVM-16.so.1+0xf0620b)
 #3 0x00007f4a92490420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #4 0x0000562ecf70a054 (/usr/lib/llvm-16/bin/clang-tidy+0x895054)
 #5 0x0000562ecfca6eee clang::ast_matchers::internal::DynTypedMatcher::matches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const (/usr/lib/llvm-16/bin/clang-tidy+0xe31eee)
 #6 0x0000562ecf61514b clang::ast_matchers::internal::matcher_hasType0Matcher<clang::ParmVarDecl, clang::ast_matchers::internal::Matcher<clang::QualType>>::matches(clang::ParmVarDecl const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const (/usr/lib/llvm-16/bin/clang-tidy+0x7a014b)
 #7 0x0000562ecfca6eee clang::ast_matchers::internal::DynTypedMatcher::matches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const (/usr/lib/llvm-16/bin/clang-tidy+0xe31eee)
 #8 0x0000562ecf70b711 clang::ParmVarDecl* const* clang::ast_matchers::internal::matchesFirstInPointerRange<clang::ast_matchers::internal::Matcher<clang::ParmVarDecl>, clang::ParmVarDecl* const*>(clang::ast_matchers::internal::Matcher<clang::ParmVarDecl> const&, clang::ParmVarDecl* const*, clang::ParmVarDecl* const*, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) (/usr/lib/llvm-16/bin/clang-tidy+0x896711)
 #9 0x0000562ecf70b631 clang::ast_matchers::internal::matcher_hasAnyParameter0Matcher<clang::CXXConstructorDecl, clang::ast_matchers::internal::Matcher<clang::ParmVarDecl>>::matches(clang::CXXConstructorDecl const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const (/usr/lib/llvm-16/bin/clang-tidy+0x896631)
#10 0x0000562ecfca6eee clang::ast_matchers::internal::DynTypedMatcher::matches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const (/usr/lib/llvm-16/bin/clang-tidy+0xe31eee)
#11 0x0000562ecfcaab5d (/usr/lib/llvm-16/bin/clang-tidy+0xe35b5d)
#12 0x0000562ecfca705a clang::ast_matchers::internal::DynTypedMatcher::matchesNoKindCheck(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const (/usr/lib/llvm-16/bin/clang-tidy+0xe3205a)
#13 0x0000562ecfcaa155 (/usr/lib/llvm-16/bin/clang-tidy+0xe35155)
#14 0x0000562ecfca98fb (/usr/lib/llvm-16/bin/clang-tidy+0xe348fb)
#15 0x0000562ecfca6eee clang::ast_matchers::internal::DynTypedMatcher::matches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const (/usr/lib/llvm-16/bin/clang-tidy+0xe31eee)
#16 0x0000562ecfc727b5 (/usr/lib/llvm-16/bin/clang-tidy+0xdfd7b5)
#17 0x0000562ecfc752c1 (/usr/lib/llvm-16/bin/clang-tidy+0xe002c1)
#18 0x0000562ecfc78821 (/usr/lib/llvm-16/bin/clang-tidy+0xe03821)
#19 0x0000562ecfc75868 (/usr/lib/llvm-16/bin/clang-tidy+0xe00868)
#20 0x0000562ecfc796fb (/usr/lib/llvm-16/bin/clang-tidy+0xe046fb)
#21 0x0000562ecfc754a8 (/usr/lib/llvm-16/bin/clang-tidy+0xe004a8)
#22 0x0000562ecfc78521 (/usr/lib/llvm-16/bin/clang-tidy+0xe03521)
#23 0x0000562ecfc75850 (/usr/lib/llvm-16/bin/clang-tidy+0xe00850)
#24 0x0000562ecfc7723b (/usr/lib/llvm-16/bin/clang-tidy+0xe0223b)
#25 0x0000562ecfc75418 (/usr/lib/llvm-16/bin/clang-tidy+0xe00418)
#26 0x0000562ecfc7723b (/usr/lib/llvm-16/bin/clang-tidy+0xe0223b)
#27 0x0000562ecfc75418 (/usr/lib/llvm-16/bin/clang-tidy+0xe00418)
#28 0x0000562ecfc7723b (/usr/lib/llvm-16/bin/clang-tidy+0xe0223b)
#29 0x0000562ecfc75418 (/usr/lib/llvm-16/bin/clang-tidy+0xe00418)
#30 0x0000562ecfc7723b (/usr/lib/llvm-16/bin/clang-tidy+0xe0223b)
#31 0x0000562ecfc75418 (/usr/lib/llvm-16/bin/clang-tidy+0xe00418)
#32 0x0000562ecfc7db4b (/usr/lib/llvm-16/bin/clang-tidy+0xe08b4b)
#33 0x0000562ecfc752f9 (/usr/lib/llvm-16/bin/clang-tidy+0xe002f9)
#34 0x0000562ecfc450d1 clang::ast_matchers::MatchFinder::matchAST(clang::ASTContext&) (/usr/lib/llvm-16/bin/clang-tidy+0xdd00d1)
#35 0x00007f4a910d468c clang::MultiplexConsumer::HandleTranslationUnit(clang::ASTContext&) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x272168c)
#36 0x00007f4a8f45bcbb clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0xaa8cbb)
#37 0x00007f4a91096af7 clang::FrontendAction::Execute() (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x26e3af7)
#38 0x00007f4a9100a616 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x2657616)
#39 0x00007f4a912c048c clang::tooling::FrontendActionFactory::runInvocation(std::shared_ptr<clang::CompilerInvocation>, clang::FileManager*, std::shared_ptr<clang::PCHContainerOperations>, clang::DiagnosticConsumer*) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x290d48c)
#40 0x0000562ed0185c8d (/usr/lib/llvm-16/bin/clang-tidy+0x1310c8d)
#41 0x00007f4a912c01ef clang::tooling::ToolInvocation::runInvocation(char const*, clang::driver::Compilation*, std::shared_ptr<clang::CompilerInvocation>, std::shared_ptr<clang::PCHContainerOperations>) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x290d1ef)
#42 0x00007f4a912bf27f clang::tooling::ToolInvocation::run() (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x290c27f)
#43 0x00007f4a912c1c7e clang::tooling::ClangTool::run(clang::tooling::ToolAction*) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x290ec7e)
#44 0x0000562ed0180eaf 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-16/bin/clang-tidy+0x130beaf)
#45 0x0000562ecf60ff72 clang::tidy::clangTidyMain(int, char const**) (/usr/lib/llvm-16/bin/clang-tidy+0x79af72)
#46 0x00007f4a874be083 __libc_start_main /build/glibc-SzIz7B/glibc-2.31/csu/../csu/libc-start.c:342:3
#47 0x0000562ecf60adde _start (/usr/lib/llvm-16/bin/clang-tidy+0x795dde)
Segmentation fault
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWltv2zgW_jXOC2GDou4PeXCdBM1u02abdDBvBkVRtlpZMkgqsfvr95CSbVG2O4nGwAKzNQxbEslzvvOdC0WJSZVur0cBbr_4ZoSnI-IhVtByMVZ5ukXj8QsXMq_KpvVbUpeqRp8-_fGA2gbkBBM82Y02vwh9Wat8lf_kKUrqvEgnu-s3PKN1oZCiYsHVyJ2iTRTMA2-8ZuMiL-vNeFHWu84fK6nQ7PGb7saoZDTlBf3BW0092MdWvIIGtFRqLUHAiNzBN6lAZCUWk--ZqBaTvIJrVKg8owwub-FsRfMS_gQvOJUcjpxJGIN15E5WtWB8J2TuzMN4jidgyGTx86AUztHPzUuGftmLpVb7TqgGedIJbMnZDzDjJqkXa1GVfJxV4pWKNIcugmdc8JLxcQUuKSoKwgG8mizX60bcrRCVQK_LvOBIiS0MQqpCpidFrFqt84Iq7cqUKppou93Wk7OqLlJUVgrRWlXjlCvO1MkhCBChTGsYEXLQT0gj6HN1blRdpigvYdTdslppfuUr5ysuekzvThGooeUWrSnYrFCaC974zqjJ8g1Pxx1N445JqMtDtealJsKM6BqOAKqs2bIxBvr3VHyXIPU9Gv719OXzexR8rUsz7jVXy6pWKCvoQrYZ9Pjpdvp0C8OTVQ4-gexaIMHXlVDao3awL2B8nUwAKpwUxcvubwwR9B0UwmkuZc0lHACl2gusqFMIkSVHTFC5RAllP5SgjLfqnxRcQGm9Wu8jBE-Q-TxCQgm6QpDY9Qo8I03WXi6GnVbPyJ3xKhu5tzoCJIdgUIgD-CozfDadSdt5-vT8QBVoFhqNOdTMjkj4NhDQEdEFlASp9gaj9jP7889ZBQ2i1r674axoclp3dKcGfXP4yhNZsR-8PYUconnRHCsOqqvXcq7Yel6tz1ycAbeqYlUxIjN0u-EMUlHo44_gtULbdou0fdATXFlLnTqtLzuVpUFE7g5woNdqDULvdhoN2-7UC-HH1wqgJOuIDRxzwb1tGRgRFyO8wfAJM49GUeyEjDvIBJmxQW5lc_Ao8lKZsHnWcTQi0aGToK9zwCY4hdAMtD7oOyIxyI_2hhR5sotbJ9BmmPo8mRya8kRPR9A6kdXEGZEPeJNhH_CAqANgpwfYpw4_BRiy7ylflLRoyZUGzEUwuaDSwkR6mCKCk0soCkCOpcjtKIqJF2OPYDSfC65nQz6H6tFobYS2U_JhPjYNa7UET6VaDzZ6HA-kWGq8Vo0fEM6yEFPse2-w51AljNwo9mGcJdi3BDMacM6b4tI4DSJ7vmoSvXUjRBIX4MXm7GZbPm_XPD0UA_g2A7R_O5J2PT9XUAiZzu82NN-hbVd1IAlTPY9N3zn-g54TNQD5LDj_oG-gWjFxA-n9nHLXAcosTgOL08DxHS95D8q2bb6kUjOG99zOOkIeqVj9QU11fCcJJ8X9p6aFVqZLkf6edWNH7z_IiyHF4CTLi-HvzLh4ZkS9MpaEjoPOBfV0x8X0_ckj73Ih1X35WJnWrzCc2wE_KEu6-CBLbIrPgDcdo8tqPhcl5yAM6fW_jLgBM1sAoWTFWtyPtcB1BlbhabkFzugK1mjidDU-vmW9RFHuhdsv6_KJm-Z_TikB94L39u7VN534d3m-aHnWnDo9Tmnip0ME-zDOEkx6gkPs00s563P1byB1ptfA_yd-I8CeRa_b95vj-4P8BuMswV5PcBxlb1lGHQn2YJwl-Pey4_LZay87WEjCZEAUpFkK4yzBvTvh0CfMGYAYYxhnCY56gqOIDBLswjhLcNxHHAXRIMQwriuY9GadMA4GJQT2AjshiNNH7NFhiGGcJZj0OfYHcuzbHBP3iGMfD-PYx5bgXtEJQ-IO4pjAOEuwf8SxM5Bjx-a4n3kXQ3yUeZdC3M-8iyE-yrwLIXb7mXcpxO5x5l0IcT_z0sQbhDhKPBvxUeaRbMCSSdfjLLYE9zLP83H6F0um7rR4mINhvrQnYbgAixPFN83kOwBtmmIAY6H1u49eHZx6QcS6aB_qQuXrgm_0uqhe7RA2T5-fBS1l85rpW5mrvw3XfnLcgGfrtXl2HBgLSEgcQGiZEHRMiDLPT1iS9Fbqkh-x-cRXtL2JSarm3UXzfxmglEYAw8IZ2lTHAc3CLs47oekq0ynThDbXmtcpfOBD_pMMBtwFxRayyEaGaQD3Qd1lsXmdyMU93GXRknELWwvXIrdnygX9H_hhoI876GMLPWHYs0NYgVvz08ju2hfrzfueurwvXypGW3ukSpsGuaSCp_O16j-v2NOyH3X0POsOOjzQki72t7x_KfZx9lEnDs1LLr6suTCS5bHom5wuykqqnO1z860Pft5AdAy1wE40rzt7pNiJfBYNWNk6roNhoCXZ6bvQ4dlZFz7DSZfyU75jwO25Z3KpyF92dWx2eFH-Vvec9frfcezlnAbMWdQSm9okI-G7qb1k-YkxAwQWRLfnfYeF_CzEmb6ucXbR_cqeXQ26ZGpwQGiZ4PVSA3Nqs6yjfwe4McHkQ3Syz75DdwKdnafkEMQ3u40r3UX64TXyVAi6_QoR4s720Tqfs83GcZoTGJuzuVTCCJ_pNLJCW1-YK0FzvYGiae4FPy0KHT6V6LQ3XwvJfalELSERAc2sVI8mVw7NL1l7b_RFb3WgW11Gn7ZS8VUryZ6zu5KfDPivJg2GVCecgO8s59pLngBnWUhOO5ftHPdg9mlFZsMAOM6uRsOezocxTNvEAmbd-YReAre5LprPddyCD6nQN5rN3iWzzQ3-F7pt_PTz_mf4YX9KJvqx8B2T9S7-m0PTaORMGBgHtUT_HtSHPV5omnLUKB5inp-mh6R64gu9TafZjmU25fU20l3xayfwY6gXgR9dpdduGrsxvVK5Kvj1yP_QEe_foDdu6jHbiq5qUVwP36vkB3EUXS2vfd_LwpB6LnbgQoph5YJh2RElEcUhLGSuCprwQmqsI0JK_oqMCL0lzb-5yq8JrLJwhENCfGB4EnE_DjKSeUlEMM-SkYfhDjYvJhrHpBKLK3FtIIGpEhqLXCp5aKRS5ouSG2q0fFqrZSWu281sV0b1tYH-X63lkd4">