<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/127965>127965</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Crash in clangd
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
FrK5E
</td>
</tr>
</table>
<pre>
Hi,
I love llvm project, keep it up! Tried to build clangd from label llvmorg-20.1.0-rc2, got a crash in my codebase when running this clangd under vscode.
clangd: /local/py467/code/llvm-project/clang-tools-extra/clang-tidy/modernize/MacroToEnumCheck.cpp:397: virtual void clang::tidy::modernize::MacroToEnumCallbacks::Endif(clang::SourceLocation, clang::SourceLocation): Assertion `CurrentFile->ConditionScopes > 0' failed.
backtrace:
#0 0x00000000005de4bb llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/local/py467/code/llvm-project/build/bin/clangd+0x5de4bb)
#1 0x00000000005db68b llvm::sys::RunSignalHandlers() (/local/py467/code/llvm-project/build/bin/clangd+0x5db68b)
#2 0x00000000005db7a9 SignalHandler(int) Signals.cpp:0:0
#3 0x00007f9e0f48bd10 __restore_rt (/lib64/libpthread.so.0+0x12d10)
#4 0x00007f9e0defa52f raise (/lib64/libc.so.6+0x4e52f)
#5 0x00007f9e0decde65 abort (/lib64/libc.so.6+0x21e65)
#6 0x00007f9e0decdd39 _nl_load_domain.cold.0 (/lib64/libc.so.6+0x21d39)
#7 0x00007f9e0def2e86 (/lib64/libc.so.6+0x46e86)
#8 0x000000000333a9d3 clang::tidy::modernize::MacroToEnumCallbacks::Endif(clang::SourceLocation, clang::SourceLocation) (/local/py467/code/llvm-project/build/bin/clangd+0x333a9d3)
#9 0x0000000000e347c8 clang::PPChainedCallbacks::Endif(clang::SourceLocation, clang::SourceLocation) (/local/py467/code/llvm-project/build/bin/clangd+0xe347c8)
#10 0x0000000000db947e clang::Preprocessor::HandleDirective(clang::Token&) (/local/py467/code/llvm-project/build/bin/clangd+0xdb947e)
#11 0x0000000000d8c9aa clang::Lexer::LexTokenInternal(clang::Token&, bool) (/local/py467/code/llvm-project/build/bin/clangd+0xd8c9aa)
#12 0x0000000000d8ea8f clang::Lexer::Lex(clang::Token&) (/local/py467/code/llvm-project/build/bin/clangd+0xd8ea8f)
#13 0x0000000000df724c clang::Preprocessor::Lex(clang::Token&) (/local/py467/code/llvm-project/build/bin/clangd+0xdf724c)
#14 0x0000000003be44b6 clang::Parser::ConsumeBrace() (/local/py467/code/llvm-project/build/bin/clangd+0x3be44b6)
#15 0x0000000003bedf80 clang::BalancedDelimiterTracker::consumeClose() (/local/py467/code/llvm-project/build/bin/clangd+0x3bedf80)
#16 0x0000000003c48591 clang::Parser::ParseNamespace(clang::DeclaratorContext, clang::SourceLocation&, clang::SourceLocation) (/local/py467/code/llvm-project/build/bin/clangd+0x3c48591)
#17 0x0000000003c2decc clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) (/local/py467/code/llvm-project/build/bin/clangd+0x3c2decc)
#18 0x0000000003bf0ee5 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/local/py467/code/llvm-project/build/bin/clangd+0x3bf0ee5)
#19 0x0000000003bf1d85 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/local/py467/code/llvm-project/build/bin/clangd+0x3bf1d85)
#20 0x0000000003be2cea clang::ParseAST(clang::Sema&, bool, bool) (/local/py467/code/llvm-project/build/bin/clangd+0x3be2cea)
#21 0x0000000003943423 clang::FrontendAction::Execute() (/local/py467/code/llvm-project/build/bin/clangd+0x3943423)
#22 0x0000000001c0c56a clang::clangd::ParsedAST::build(llvm::StringRef, clang::clangd::ParseInputs const&, std::unique_ptr<clang::CompilerInvocation, std::default_delete<clang::CompilerInvocation>>, llvm::ArrayRef<clang::clangd::Diag>, std::shared_ptr<clang::clangd::PreambleData const>) (/local/py467/code/llvm-project/build/bin/clangd+0x1c0c56a)
#23 0x0000000001ca6f7a clang::clangd::(anonymous namespace)::ASTWorker::generateDiagnostics(std::unique_ptr<clang::CompilerInvocation, std::default_delete<clang::CompilerInvocation>>, clang::clangd::ParseInputs, std::vector<clang::clangd::Diag, std::allocator<clang::clangd::Diag>>) TUScheduler.cpp:0:0
#24 0x0000000001ca7af2 clang::clangd::(anonymous namespace)::ASTWorker::updatePreamble(std::unique_ptr<clang::CompilerInvocation, std::default_delete<clang::CompilerInvocation>>, clang::clangd::ParseInputs, std::shared_ptr<clang::clangd::PreambleData const>, std::vector<clang::clangd::Diag, std::allocator<clang::clangd::Diag>>, clang::clangd::WantDiagnostics)::'lambda'()::operator()() TUScheduler.cpp:0:0
#25 0x0000000001c9f6c2 clang::clangd::(anonymous namespace)::ASTWorker::runTask(llvm::StringRef, llvm::function_ref<void ()>) (.constprop.0) TUScheduler.cpp:0:0
#26 0x0000000001ca09c9 clang::clangd::(anonymous namespace)::ASTWorker::run() TUScheduler.cpp:0:0
#27 0x0000000001e80765 void* llvm::thread::ThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::'lambda0'()>>(void*) Threading.cpp:0:0
#28 0x00007f9e0f4811ca start_thread (/lib64/libpthread.so.0+0x81ca)
#29 0x00007f9e0dee58d3 clone (/lib64/libc.so.6+0x398d3)
`
cat .clang-tidy
---
Checks: 'clang-diagnostic-*,clang-analyzer-*,boost-*,bugprone-*,cppcoreguidelines-*,modernize-*,performance-*,readability-*'
WarningsAsErrors: ''
HeaderFileExtensions:
- ''
- h
- hh
- hpp
- hxx
ImplementationFileExtensions:
- c
- cc
- cpp
- cxx
HeaderFilterRegex: ''
ExcludeHeaderFilterRegex: ''
CheckOptions:
cert-arr39-c.WarnOnSizeOfCompareToConstant: 'false'
cert-arr39-c.WarnOnSizeOfConstant: 'false'
cert-arr39-c.WarnOnSizeOfIntegerExpression: 'false'
cert-arr39-c.WarnOnSizeOfPointer: 'false'
cert-arr39-c.WarnOnSizeOfPointerToAggregate: 'false'
cert-arr39-c.WarnOnSizeOfThis: 'false'
cert-dcl16-c.NewSuffixes: 'L;LL;LU;LLU'
cert-err33-c.AllowCastToVoid: 'true'
cert-err33-c.CheckedFunctions: '^::aligned_alloc;^::asctime_s;^::at_quick_exit;^::atexit;^::bsearch;^::bsearch_s;^::btowc;^::c16rtomb;^::c32rtomb;^::calloc;^::clock;^::cnd_broadcast;^::cnd_init;^::cnd_signal;^::cnd_timedwait;^::cnd_wait;^::ctime_s;^::fclose;^::fflush;^::fgetc;^::fgetpos;^::fgets;^::fgetwc;^::fopen;^::fopen_s;^::fprintf;^::fprintf_s;^::fputc;^::fputs;^::fputwc;^::fputws;^::fread;^::freopen;^::freopen_s;^::fscanf;^::fscanf_s;^::fseek;^::fsetpos;^::ftell;^::fwprintf;^::fwprintf_s;^::fwrite;^::fwscanf;^::fwscanf_s;^::getc;^::getchar;^::getenv;^::getenv_s;^::gets_s;^::getwc;^::getwchar;^::gmtime;^::gmtime_s;^::localtime;^::localtime_s;^::malloc;^::mbrtoc16;^::mbrtoc32;^::mbsrtowcs;^::mbsrtowcs_s;^::mbstowcs;^::mbstowcs_s;^::memchr;^::mktime;^::mtx_init;^::mtx_lock;^::mtx_timedlock;^::mtx_trylock;^::mtx_unlock;^::printf_s;^::putc;^::putwc;^::raise;^::realloc;^::remove;^::rename;^::scanf;^::scanf_s;^::setlocale;^::setvbuf;^::signal;^::snprintf;^::snprintf_s;^::sprintf;^::sprintf_s;^::sscanf;^::sscanf_s;^::strchr;^::strerror_s;^::strftime;^::strpbrk;^::strrchr;^::strstr;^::strtod;^::strtof;^::strtoimax;^::strtok;^::strtok_s;^::strtol;^::strtold;^::strtoll;^::strtoul;^::strtoull;^::strtoumax;^::strxfrm;^::swprintf;^::swprintf_s;^::swscanf;^::swscanf_s;^::thrd_create;^::thrd_detach;^::thrd_join;^::thrd_sleep;^::time;^::timespec_get;^::tmpfile;^::tmpfile_s;^::tmpnam;^::tmpnam_s;^::tss_create;^::tss_get;^::tss_set;^::ungetc;^::ungetwc;^::vfprintf;^::vfprintf_s;^::vfscanf;^::vfscanf_s;^::vfwprintf;^::vfwprintf_s;^::vfwscanf;^::vfwscanf_s;^::vprintf_s;^::vscanf;^::vscanf_s;^::vsnprintf;^::vsnprintf_s;^::vsprintf;^::vsprintf_s;^::vsscanf;^::vsscanf_s;^::vswprintf;^::vswprintf_s;^::vswscanf;^::vswscanf_s;^::vwprintf_s;^::vwscanf;^::vwscanf_s;^::wcrtomb;^::wcschr;^::wcsftime;^::wcspbrk;^::wcsrchr;^::wcsrtombs;^::wcsrtombs_s;^::wcsstr;^::wcstod;^::wcstof;^::wcstoimax;^::wcstok;^::wcstok_s;^::wcstol;^::wcstold;^::wcstoll;^::wcstombs;^::wcstombs_s;^::wcstoul;^::wcstoull;^::wcstoumax;^::wcsxfrm;^::wctob;^::wctrans;^::wctype;^::wmemchr;^::wprintf_s;^::wscanf;^::wscanf_s;'
cert-oop54-cpp.WarnOnlyIfThisHasSuspiciousField: 'false'
cert-str34-c.DiagnoseSignedUnsignedCharComparisons: 'false'
cppcoreguidelines-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic: 'true'
google-readability-braces-around-statements.ShortStatementLines: '1'
google-readability-function-size.StatementThreshold: '800'
google-readability-namespace-comments.ShortNamespaceLines: '10'
google-readability-namespace-comments.SpacesBeforeComments: '2'
llvm-else-after-return.WarnOnConditionVariables: 'false'
llvm-else-after-return.WarnOnUnfixable: 'false'
llvm-qualified-auto.AddConstToQualified: 'false'
SystemHeaders: false
...
`
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzUWltz27iS_jX0C4sqitT1wQ-yYm9cm3OSjZSTRxUINCUcgwADgJScX78FkJIJkFYys9qZ3amZMfmh0fj6gsaFQkrRPQe4D6YPwfTDHar0Qcj7J_mf08e7TJDX-480SNZhEK-eQyZqCBmri7CU4t-AtWl5AShDqsOqDJJxuJUUSKhFmFWUkRAzxPckzKUoQoYyYLa7kPsoiUfjURxJnBgle6FDFGKJ1CGkPCxeQywIZEhBeDwAD2XFOeX7UB-oOiutOAEZ1spIjgzBIF41TUG6CoPkiQmMWJA8la-T2TxInoyggVldRBcDnmyXSAvBVAQnLdEbRslrkDwVgoDk9Kfp-w-EpdiKR14V6wPglxEuyyBdpcu5GbOmUleIhbWgrelBugrSlVVkn9502deuOsRYhvCLaloeOaF5kCw6Wjaikhg-CYw0Fdx47Urj0vBZKQXSvIfBLF5XUgLXT5RBFKSPa8EJNW0bLEpQYZA-hnGQzMMcUQZk1PjTMNISYbAutVCQpHEYn-LLP1MCkyyzgW24qNfWiC-Scr3RCL9srY5k8SYk0XEnlJaAiiCZGWso10GyDINk8duxs0lm_lJ-jhoJkof41HAybrCcwyBJxx7pbLYYJP214hu654h9RJwwkMoSuhkvM6zDK_F5zdEydBgEyaL1TQOrNuti-99FUdoqmudLiPPJIiPjONztJCgtJOykPptAs9mk-VvqgwRERkqMYstvnJBx7NCbdLUSyNE0yUOJqIK-OmwUzayiCUyT3FE0dRVhArNpiDIxxKujKBnDbOoomvmKSLoMd5ztmEBkR0SBKB9hwcgo_oVmki4dzXPP1gQWs-tWzmAxc1QsutFM0xQtSfp3l4LbpG5rjGPt0sldSCdzvOhS-fJlfUCUA_m_aVJD-GKRKRJuaSPZcjIHxyIJpRQYlBKyQZpJ-oFKwJrW4Fq1FS_AbX27EeWGkUPZLWxkgZcIdSl_ghPIy6Nl9Mw1SG54DJNdh5kQ7HakLSeHdOKRBrTI3yf9v-1UO7zDL3X55fNkgq_nwV9A07JwaE6ccpPBZJLNHJpIqrMf14KrqoCHdim-XWFohnV4TT1eJF_EXV4PiCGOgXwARguqQZoNwsuZKW6YrplQt2ZqiDhMZw5TPFlMl-P3PGif_4kKUGXjw47cB8AMSaSFXAuu4aR_UcJmf1HVbixyTJ67JicEML5q8tk2S-yWRlvtZKW1pFmlQf0ZCX-M1Q19Z13j-M5d37M8Bphe9d3jqSm17_rwFj4wEpTvzRibEvBNndDY6Dhh6TlhTBbXnbAV5SeowTrBtf5ziX5U8EXLIF17ifUfUlTlV8iD9HEg6lCgduMkSMXguSiFNGcNDbcsua1xXeuT2KttCQbUs3612Xr7G0O4u7beeI1tiThMnZ1Bupykk8TZjD5JM2s5WWGbls3W7AS40rctu83IDjVn_R_jGE9njhMvB_m3_N9sm9d2nM5ZcqMl5XuTKm6S9JQ887LSKjTri26DoXQrUHH6o4Jd6afiWhQlZSCfed3ZnF66mSNRxfSOAAMNv-yaPtp0XndOnisp0avN8_U73D9QtG-7XcZVBySB9Ok6NpvTdcbgA9KoNdpouVFY26g5YU3dsKJZPn83rEGyQFzw10JUKuRvq-qydctm-13Iy55gDxwk0mB8wYXSFJuD-d8VvV8nmTNMDViLK4GyAe52QMwE59d9WkLLcPttgw9gKqHs3w6YyEy8yMxRntwmMlVJkIZzrv3_Ccr_YAb9haF916zviGtnMizPwZszVGQEBcm8qeINLkqwO7UWa-r7L9Nm6qbNMp_hG6WNrPgWqZf3C_kbnFfcrlA7aaukvV49m3auZyMbnVKKchT_lmUzb0LES7y8mWW_615nKz6GRTyfTe31cZCsOg5orunaY6V9_iLF6TVI15e00lXJ4P2UWqlXjo2_v1acd4ha3InB9kg5OEvkW1s7oc_xGIqFl4RxJwubhF605ln_WFso3w97Z-HdaI7HGIVKI6l3jUd-40ZzMcbuErV0L_lgurA3dIJfv9BMl4vO5Vf776wli5EOR52PBhaMoqh5sF8KVPNRYt5IkcvEjawrmrBFiCP2-hNkC2ZCKH1-rvalFBzO8mWJhYR9RQkwykG1-OVWsX0vQeZCFuaw3SLGPSijjOrXBpk3LL8jySnfq5V6lFLIM99L-0dABOQTZfZIwxUV3N7mNZeBYeQIm_dD57H7XJadl9OpeXkuSgYFcG1r-pVRcOex-9zVis9aL5w1yK-wh5Nv1OMJs4rAL-VsCD-X2qODQeoISZkuIzwyDvzMN_QnfM7NMoUkbMXazCPEdaswR0xBx0tXFFzr9263Z65hD_LxVEpQqtnU_5H-XwTl2paHP9FrK1b7vYS9OYP9MQXbA1XXPEQwG88iPPonHDdVntMTnMU_BenDJ_u_b_bpm98VpEzTCI9WjInjGim9Ff8yBajprmXl8zt3sCEH8tTWust8mD6e13G650B2dj0P0oe3BoU1LWCnHFDvflQUv-zgRLXb4COZAiTxYQByVWZaHJ2B8XgmtSgyB0uTPtajjJnALw7AyS6TAhGMlPYbKKc9TNkvUz5q_ECOqC_ew_oey7G9_usiOauU45d8Dxr7QCmUD_UA13G5KIH3AI9OKSnX-QDky1UeJbvx9IBjT-ToyjTrvQP0SDaQN7zCiOd9xJcCePGAnt80MCeg-XHABcdBHxwl1W7ojn1exwFifjzN-wFJDwJe95GeItVDjr7uY095YRKxj7iq7MHZF7yArmzRm2xFJrXA41kfSxMXU9JMcTUI7nx4SHRIEgp8cGwuXnxTCn3qTXKD-VXCYHaKDzbI1yG44j46lEH-JOpNGfsF2gGg52gJhag9IbN57yK9tBxISgXaBhc8sM4qt2uvBirenzJnzBtjQHBQrk94iLGWXpCVlmC2dT253A--0rLM5IsHDehT2ke0ID0k7yG0QKce6I-nxUuPqhasj_RHZH2paggawPrMTrksHGigCKrBIqj6JU8NlTx9kGSHJSC3YlqYgEbuTsDC_xaU90DFAEoH9QJr3lUJeLcHZ2brosypm9wt5BEtSo6KPuJJKTVkjVK9YZXaKRequF__LeLO_HpgJa4Hl-K6vxjWQ6thPbSy1cNLWz2wktWDS1k92L3feajrUN2ohwtHPVA56sHSUfdrRz1UPOqhHK-Hk7weyPJ6MM3r4f4D3Yd6H3FvF3vEyqtJR6x61eyIlV_Njlj51cxARr8aBH0qyqt8R6y8ymeRvIf4lc-CPrde5bMY6yP9EVlfqm_TsEl-jWyhAaxvg18jj1gLL1RaIu4NqV9LN1L9nclgyvQzppsw7llOiHI6iXBZtqdN9vpsz5ofkdpUqqSYiko9UWDkyoFVaZlOIjxqL1thY89937j94SxZH5BsTvtUvZ0SfT292xoueFRKWiMNUQFFBjKqkaQoY6AiyiPMkFKgRs97LiSsm7fvVB9WjP3Dyv_rLP4AlO-_VBmjePBUG-6F2DOIuhc_mUQYVISkqDiJlEbaXr6o0eZw_oxq3j8Zrq3S8XWN5zvBSNGfMLpo2B4kqIO4OHgRx296BtRcLlcjLIoOpcuvLhxKf1yXeVUPkBuntmCrLHnTZb-AAVMQoVyDjCToSvI2hy4_nL0EYDjmV5V84zk9mc5X-v6oEKM5BRKhSovRihB7KbQV_3VuGOy8eVUaiuZGy1Jrmm3baDRqri3vyH1KlukS3cH9eD6J43Qep-nd4X6RznKSz9J4TMZkPp_l0-kSJnNYTLPxEmN0R--TOJnGSRLH83Q-TkeLmIyTeLZIIctSyEkwiaFAlI2MESMh93dUqQrux8l8OZve2V-BK_tz8yThcAxta5AkwfTDnby3lmfVXgWTmFGl1ZsaTTWD-_X5N-LN7fZdJdn9QevSXsslT0HytKf6UGUjLIr2Y2b_m6YdUwXJU0uqvk_-OwAA__-kqCL_">