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

    <tr>
        <th>Summary</th>
        <td>
            [clang-tidy][crash] Crash in misc-const-correctness
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          chrchr-github
      </td>
    </tr>
</table>

<pre>
    Split from [60895](https://github.com/llvm/llvm-project/issues/60895)
~~~c++
void f() { int& a = a; }
~~~
~~~
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=misc-const-correctness <source>
1.      <eof> parser at end of file
2.      ASTMatcher: Processing 'misc-const-correctness' against:
        FunctionDecl f : <<source>:1:1, col:23>
--- Bound Nodes Begin ---
    decl-stmt - { DeclStmt : <<source>:1:12, col:21> }
 function-decl - { FunctionDecl f : <<source>:1:1, col:23> }
 local-value - { VarDecl a : <<source>:1:12, col:20> }
    scope - { CompoundStmt : <<source>:1:10, col:23> }
--- Bound Nodes End ---
  #0 0x0000000004e1aa08 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/clang-tidy+0x4e1aa08)
  #1 0x0000000004e1837c SignalHandler(int) Signals.cpp:0:0
  #2 0x00007f45f2e42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
  #3 0x0000000003bf62b2 clang::ParentMapContext::traverseIgnored(clang::DynTypedNode const&) const (/clang-tidy+0x3bf62b2)
  #4 0x000000000397b2df clang::ast_matchers::internal::DynTypedMatcher::matches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const (/clang-tidy+0x397b2df)
  #5 0x000000000397cf99 clang::ast_matchers::internal::(anonymous namespace)::VariadicMatcher<&clang::ast_matchers::internal::anyOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)>::dynMatches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const ASTMatchersInternal.cpp:0:0
  #6 0x000000000397b303 clang::ast_matchers::internal::DynTypedMatcher::matches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const (/clang-tidy+0x397b303)
  #7 0x000000000397cf99 clang::ast_matchers::internal::(anonymous namespace)::VariadicMatcher<&clang::ast_matchers::internal::anyOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)>::dynMatches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const ASTMatchersInternal.cpp:0:0
  #8 0x000000000397c461 clang::ast_matchers::internal::(anonymous namespace)::IdDynMatcher::dynMatches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const ASTMatchersInternal.cpp:0:0
  #9 0x000000000397b303 clang::ast_matchers::internal::DynTypedMatcher::matches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const (/clang-tidy+0x397b303)
 #10 0x000000000392ef53 bool clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor::match<clang::Stmt>(clang::Stmt const&) ASTMatchFinder.cpp:0:0
 #11 0x0000000003938443 clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.constprop.0) ASTMatchFinder.cpp:0:0
 #12 0x0000000003933c5f clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor>::TraverseDecl(clang::Decl*) ASTMatchFinder.cpp:0:0
 #13 0x0000000003934811 clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor::TraverseDecl(clang::Decl*) ASTMatchFinder.cpp:0:0
 #14 0x0000000003935a4b clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor>::dataTraverseNode(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) ASTMatchFinder.cpp:0:0
 #15 0x0000000003938388 clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.part.0) ASTMatchFinder.cpp:0:0
 #16 0x00000000039415fb clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) ASTMatchFinder.cpp:0:0
 #17 0x0000000003935944 clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor>::dataTraverseNode(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) ASTMatchFinder.cpp:0:0
 #18 0x0000000003938388 clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (.part.0) ASTMatchFinder.cpp:0:0
 #19 0x000000000393fb5e clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::matchesRecursively(clang::DynTypedNode const&, clang::ast_matchers::internal::DynTypedMatcher const&, clang::ast_matchers::internal::BoundNodesTreeBuilder*, int, clang::ast_matchers::internal::ASTMatchFinder::BindKind) ASTMatchFinder.cpp:0:0
 #20 0x00000000039409d7 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::matchesDescendantOf(clang::DynTypedNode const&, clang::ASTContext&, clang::ast_matchers::internal::DynTypedMatcher const&, clang::ast_matchers::internal::BoundNodesTreeBuilder*, clang::ast_matchers::internal::ASTMatchFinder::BindKind) ASTMatchFinder.cpp:0:0
 ...snipped...
~~~
https://godbolt.org/z/T89sjEoan
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWl2T2joS_TXiRWWXLdlgP_DAZ-3U3mymLlReU7Ikg26E5JLk2WEf8tu3LAODfUkykKnUZJcpGPyl7tPdp4-REbFWbBTnY5BOQTofkNpttRnTraFbE2yE29bFoNBsP15VUjhYGr2DIJ0OoyxPQToHKNs6V1mAJwAtAVq2Q0KqdwAtpXw6fgSV0X9x6gBaCmtrbgFatkZQDqI5iCZfv36lAE2bl99_0oLBEqAMoByC0RQK5QAaQgIBnkMC8BSC0fw0trfx-MdislpAWxc74SCBRb2BhlfaOOg0vB0zJIpBoaisGYduyyE1xG5hQegXZwjlYet-5Qj9Alm9qxov_lAUgih_NHpjyA4Ss6l3XLkGBARoSSVRm8AJtodBQLecfrEAz3fC0oBqZV1AtTGcOsWthQDPrK4N5QAvWttxYxvgGdclwAtYEWO5gcRBrhjUJSyF5O2VqLlyslp_II5uuWncPxpNubVCbSBAo8s-ARpBsiFCWXcKCET5slbUCa3mnEpYQh8MnnXw4Uns32gGqZYATxA-wQ6CAE51rRj8l2bcwinfCAWDIGhPQwgh41QG1u0cDDwJGk-rZvc7vtCZs7jJx4knsDwADhq7B5M3B3FmV2pKZPBEZM0PVj8R4w2S1yKNuhYhhJbq6mhupndVk6kfxR59E2M_2QvFzlMNEI5g9Bwd_xIeExJl0PcDngA8sXvbbjwaoZxn-LqhPEDZy0WG_Puzts5wsgNo2IDxbZtD38hnPAdoGj0fnJw0wMOIezAyPKJwJTaKyH8QxSQ3AGUHq-1hG9KqabTIv18soYOlUZmkJeIJSlF0ACJFAdDyORt-HiaBFKp-Djaqbk_Q0Opw2AJshnTh4XN4uCiHqEDQx3XIDjFcuQ-kmmnl-LNrjzpDnrix_GGjtOEMoOxsyHyv1vuKs6Yw0Peez13ebl9O3cFzF1vSwZaPCsTKc2zEus-7tvMPtRTKcaOI7AJ5UQeAJ-0A-yrIs2u8HWVoKRRrijq5crxnsyfz2nA-rYU8mvl-5tq8dDOX9jJHyzy_BgtAGVFa7Xe6tlCRHbeVb428Pf2JGEGYoKfEzgAaXmGeqP3H8mjkY8UNcdr8ThWZnQnJxBiy_5OXAM9-hpsLn91Fe5bt1Yffl6cvN2T7cBj6DUkb9jscR_je4Rc6HEe42-Gje4ffO_w36PCsz9NkGL8hTx_Y_JhI8_-V2PwunTdIZ_OFPOpmDvEyxbDQWr4hL32ws62QbLJafxJWNPL3kuKukjSzIC8PWe9g59tzN4UXWNHEFndjw1mSXMWKm8NaH2YEPpa_BfI3SV3tiJSfOHXaPOwqCfDs5dyj9pgelHskwlxIVWssrpv_Td26pg_D_xBfeEPbtSHC2ctWmpxfGHrw_KBK_QPvt3o9vVoGA5SFvtSV0VUYvbraqFdtTNPOBOlPTmtjxRM_r9Y197Cb6LDoMmLOqewJij8yeXWYuBdmksVveQ_5Mal_PoTeVBanJCneTaUYceQYaqOx9_69sn9fRYG0L804y94NBe7y_ZPyXRHjrlDu3sQ3idOyuN-n33uhX1XaUV_q8yR5N31-l_pfQYHsLvX_o-W_Qep7E3VcFil_a6m_OMnk9sQzuX_7KX3vAcKtZr73CM7_LPYzzxlaD0KxfwrFXlsx1HtAkEQ5G_2iis25pVwxotzH8vqSTVbr489077Gcv7KOYRhaJaqKszAMe6speuslNCu0dKE2G4CW_wFouc5y-9dCEzVgY8xynJMBH8ejGKcoj6N8sB1HDNFhzsuYkJhxypMkz-NhgTHjUVwM0UCMUYSSKInzGMUZysOkiHBRjLICsVE04hQkEd8RIcNGmBrfA78oY5zleDQcSFJwaf0yFoTOn2khkM4HZuzXcxT1xoIkksI6-2LGCSf9ApizYem82TfEbkE6hzO_xkMoeHlxxKA2cnz7khIfwH8DAAD___IIAYY">