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

    <tr>
        <th>Summary</th>
        <td>
            clang-tidy / clang-check coredump when ParseAST
        </td>
    </tr>

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

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

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

<pre>
    clang-tidy coredump when parse my code, and I try version 20.0.0/18.1.8, both coredump. I'm trying older version.
the link of flare/base/deferred.h is [here](https://github.com/Tencent/flare/blob/master/flare/base/deferred.h) .

```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy /path/to/my_code.cc -p /data/workspace/main
1.      <eof> parser at end of file
2.      ./flare/base/deferred.h:22:1: parsing namespace 'flare'
3. ./flare/base/deferred.h:40:1: parsing struct/union/class body 'flare::Deferred'
4.      ./flare/base/deferred.h:55:15: parsing function body 'flare::Deferred::~Deferred'
 #0 0x000000000428edbb llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x428edbb)
 #1 0x000000000428c3bb SignalHandler(int) Signals.cpp:0:0
 #2 0x00007fcf227755e0 __restore_rt sigaction.c:0:0
 #3 0x0000000002d2906a clang::CFG::buildCFG(clang::Decl const*, clang::Stmt*, clang::ASTContext*, clang::CFG::BuildOptions const&) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x2d2906a)
 #4 0x0000000002cf14ba clang::AnalysisDeclContext::getCFG() (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x2cf14ba)
 #5 0x0000000002c64339 clang::sema::AnalysisBasedWarnings::IssueWarnings(clang::sema::AnalysisBasedWarnings::Policy, clang::sema::FunctionScopeInfo*, clang::Decl const*, clang::QualType) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x2c64339)
 #6 0x0000000002183ae9 clang::Sema::PopFunctionScopeInfo(clang::sema::AnalysisBasedWarnings::Policy const*, clang::Decl const*, clang::QualType) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x2183ae9)
 #7 0x0000000002393278 clang::Sema::ActOnFinishFunctionBody(clang::Decl*, clang::Stmt*, bool) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x2393278)
 #8 0x0000000001fbb789 clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1fbb789)
 #9 0x0000000001ee2854 clang::Parser::ParseLexedMethodDef(clang::Parser::LexedMethod&) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1ee2854)
#10 0x0000000001ee252d clang::Parser::ParseLexedMethodDefs(clang::Parser::ParsingClass&) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1ee252d)
#11 0x0000000001f3228e clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, clang::SourceLocation, clang::ParsedAttributes&, unsigned int, clang::Decl*) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1f3228e)
#12 0x0000000001f33efe clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, clang::ParsedAttributes&) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1f33efe)
#13 0x0000000001efffbc clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*, clang::ImplicitTypenameContext) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1efffbc)
#14 0x0000000001ec3df0 clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1ec3df0)
#15 0x0000000001ec4d03 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1ec4d03)
#16 0x0000000001ecb7a1 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1ecb7a1)
#17 0x0000000001f28084 clang::Parser::ParseInnerNamespace(llvm::SmallVector<clang::Parser::InnerNamespaceInfo, 4u> const&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, clang::BalancedDelimiterTracker&) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1f28084)
#18 0x0000000001f2d8b5 clang::Parser::ParseNamespace(clang::DeclaratorContext, clang::SourceLocation&, clang::SourceLocation) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1f2d8b5)
#19 0x0000000001f10d82 clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1f10d82)
#20 0x0000000001ecb917 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1ecb917)
#21 0x0000000001ecd0b5 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1ecd0b5)
#22 0x0000000001ebd8b2 clang::ParseAST(clang::Sema&, bool, bool) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1ebd8b2)
#23 0x0000000001bf6671 clang::FrontendAction::Execute() (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1bf6671)
#24 0x0000000001b7339b clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1b7339b)
#25 0x0000000001439472 clang::tooling::FrontendActionFactory::runInvocation(std::shared_ptr<clang::CompilerInvocation>, clang::FileManager*, std::shared_ptr<clang::PCHContainerOperations>, clang::DiagnosticConsumer*) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1439472)
#26 0x00000000013d54a1 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)::ActionFactory::runInvocation(std::shared_ptr<clang::CompilerInvocation>, clang::FileManager*, std::shared_ptr<clang::PCHContainerOperations>, clang::DiagnosticConsumer*) ClangTidy.cpp:0:0
#27 0x0000000001431905 clang::tooling::ToolInvocation::runInvocation(char const*, clang::driver::Compilation*, std::shared_ptr<clang::CompilerInvocation>, std::shared_ptr<clang::PCHContainerOperations>) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1431905)
#28 0x0000000001434dd7 clang::tooling::ToolInvocation::run() (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1434dd7)
#29 0x0000000001436f2c clang::tooling::ClangTool::run(clang::tooling::ToolAction*) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x1436f2c)
#30 0x00000000013e3410 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) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0x13e3410)
#31 0x0000000000a2bb9f clang::tidy::clangTidyMain(int, char const**) (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0xa2bb9f)
#32 0x00007fcf21468c05 __libc_start_main (/lib64/libc.so.6+0x21c05)
#33 0x0000000000a2188d _start (/data/workspace/software/llvm-build/clang_20_0_0/bin/clang-tidy+0xa2188d)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsml1zozjWxz8NuVG1C8SL8UUuHCeeST2dJ9lxanfuXEIcbG1AYiWRjm_2s29JgINw4qR7m5mq3U252zaIo__5naMjCUOUYjsOcOnFV158fUEavRfy8k4IvtoTxfjuIhP54ZKWhO--aJYfEBUS8qaq0bc9cFQTqQBV5nAOHl4hwnN0i7Q8oGeQigmOsD_zZ76H10E6C2apaZQJvT8amqFbD88rcw3jOyTKHGR_8czzrz1_qfeASsafkChQURIJHl5nRJm3HAqQEvLZHjGFvPhqDxK8-NrD6V7rWnnh0sNrD693TO-bbEZF5eH1I3AKXHt4fTRXiszD64ooDXJ4fNyNhxeok9X9n_jdy359-Hqz3Nwg1WQV04igrNkhCbWQGmmBzmgqy-f-7Ustxd-BGn1MqQaUh9eWLOO0bHJABgiVRO1RRuiTloRCp2mjCX1ChqvpxR7yZ8j-PUixk6RCRO6aCrg2OpDxjWji4fU3IZ9UTahxV4lCf2sBWD1Zw8rcw2ubB1vsb_2tiWjGeH-wTQ4Pr2ui9x5ea2FoHrYmL2aUoi_1O11VhPFWZ9Dp9MIViMILb9rskohoBDy3wWcltI1x13h2NlbhEmMvXAbGU2PMJBgnFdjOkYfn3aXz1mg4-9Be5I_tKS0bG6qGM9HxUAqZcfPaQ7j0wuV1Z-jYX_RJJ-LYdBoPey0aTrUZXuf6sd_-edIt8nDoI__F7_8inEKeZcimoL1IHVT74UEyrm1SPUobsPS1kSTftkJpCaTycGIGNjNjaoE8nP7UvPLwlf_SifTw4tWLYOQFDbMMbdiOk_JXwvPSDOW0E9UeVjNam6Hh239HQ7gzNC9ogfF8Hsfgo-1WgtJCwlZqpNiOWOIzenp5ONSBc7zwE4Ks_pbUav1L-8E6bL7hdHD6GmiJqOBKe3hpOA7ObXT1xtHl5nEluIaXN84dO7synd3XRrTqzSeTxadz24lP5HChRRBlDpclJ-VBMWUA9P7YEzvQLaXp5LZqHLmxKzeJwnAxlKugIq7wK6Ig_xuRnPFdN2JuTcU-HnLi_KnrH0TJ6GEU09cr193A31BRwy0vxGkCnEunvzSkfDzUMCFXi83hmjhcgzQk4HDdHL17EPUbDv4gw_cY_Ll8WvcdPnOHT7gI8Tx9m8-S6nu-Zpypfc_pShjL43JytpBkQpTTOdjqdxxMhw4GRZbNUycBHuxEP_h8TAJNNJjFyme9PLFk02jKute54_i7cPwFwGkcnVX5FV4gvwO9F_k1FK6jw8aDdpP61Eo--mSmWn_sU4zz7_BJve_UQ7umWZl109RexTh3vArczAwxTuGsV6vff7-DKgO5qYGyglGi7bJv6NxGNJLCV9Gfc8fhuZO2i3yptWRZo0F166qG231a3i6wToqZHQaTpbdl4kDDI2ghFB9AM6HtgNk12aCxFk_th0fxBPz_GM-_B5hx3xjuQJ0TkT9CVZdEd5PKuP2SUnBE9nXyXat938eV2MehnC5IJgZOkEJ3vBZFkdGzfIw7RFrIRwrqtOZORvvHKffFkWh4pf6VvTW_31Z1ySjTZo43O8Gj1clqjgXvRCZyI0PDvPA_jMy97OfEayhuuQbJSflGTT0tHt_dgvHd-4E-Cdxk4CwXB1w8AhflfvjZlHb4Mc5Oq_Yk-E42bn8cPkPHwZeM8GVzEpzFd_PSptkA4x-DbDooxmcHytydy3Dqp-eXarecg_z__iaSc0NkU5Gy_CtQLaQXrt4x4l7fVscVihovvBls0s_O-eMZ8fuhX5GScAr5NZSsYhrkoyT0yeTjlJOUhevQH20McJ5m8Vn6Q_CjiclkqJBvTxMfERufnw6B8dBB4O4VisDPU_zZovZzIfyM0TzuY8qFqUU1ZIn9cYVbBPP_ugq3COYOlGAEJfc_GGOPov4Kz1C2W4shjfua_KOBBz0qb6bhL1I09W9QeOHNG1lxvIFxJ_KmhNuqFlLbzf20Gz7rrEPD3btAlqfZ6XBbbh5HOzrjQOtWvymY9CZKJ8xR7i7osyJJ5s70vZZm1PN8aVc57bGbF6CNgTzdjdROiSPVXeFm8zBcZM4talHVrAR5y5U285AjttPv8B_5NmXOtGodd9x1ZxQuormTM1qIkr0tdU3MauDQnpINv-XPx9qYKt39RqP2REK-rccD65XT8SozvJyxtWYl3BFOdmb2tsvND80-rH41MwRhHOR9DW3dU6emrxnZcaE0M5sv1VRdD1ORb8E65N0la5jHkbtktRf3bFfm-CMb3yh8bXNscJwfx4XKiWRL38K5JppkRIGzQntd-C2lJAdb_FZH-NstfXkJgvZLRhSjW6WlNb6ieyKdSJkDWy0J06o_3Ubj2IKUpUmBdmXZnW9fjpJbrmWj2DP8BsWK67ZUv55-Lro75PfPIEtyMMmzOSgNVWfJrW5Dyxsr3jiJF8eb0f-xGX5MldPfC01ezkcVIVj48bt59ChEOfTvLVAmpO_9JpFL9txP0IOc_CyLdxH_OxSnqwEGpVMD0hHrKM_n38t60gmwleRoXow0JwWm79cZm2tmwA3knnOwnwUnrcVG8tAn95GBIIQwCvz_1eI_vRZPlABtfJ0EcDYSPsFZtijeTgDaB_eOGONpfwvDLXLTpW-rzRHvPOERRElK_RhttyXLTC4QqbcVYbyTU7Isidp3OlNilnQ_3VK3NLnPffgEB2mao9bcVI6ZLl419M-eXeSXYb4IF-QCLoM5jtJ4EfnJxf4yAB8nGOMUcBqGBckSgrNgQdKowCQh-IJdYh9HforTIA6TKJn5RbyYJ0kWRDGJsjzxIh8qwsqZETsTcndhn0m7DPwk8tOLkmRQKvsAIcZDtdiLry_kZefiTnmRXzKl1asdzXQJw2cLPbxu8-kL3QN9Gj1r2O_MLhpZXv74g3Sd7udL_K8AAAD__y2IsHY">