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

    <tr>
        <th>Summary</th>
        <td>
            `clangd` crash while parsing `range/v3/algorithm/nth_element.hpp`
        </td>
    </tr>

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

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

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

<pre>
    Since it asked nicely:
```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      /**/range-v3/include/range/v3/algorithm/nth_element.hpp:117:44: current parser token ';'
1.      /**/range-v3/include/range/v3/algorithm/nth_element.hpp:47:1: parsing namespace 'ranges'
2.      /**/range-v3/include/range/v3/algorithm/nth_element.hpp:106:5 <Spelling=/**/range-v3/include/range/v3/detail/config.hpp:630:5>: parsing struct/union/class body 'ranges::nth_element_fn'
3.      /**/range-v3/include/range/v3/algorithm/nth_element.hpp:113:9: parsing function body 'ranges::nth_element_fn::operator()'
4.      /**/range-v3/include/range/v3/algorithm/nth_element.hpp:113:9: in compound statement ('{}')
 #0 0x00007f530591301c llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/nix/store/f582fg8k06z2xg8zlwnrn4g895szwzfp-llvm-19.1.6-lib/lib/libLLVM.so.19.1+0xfee01c)
 #1 0x00007f530591045b SignalHandler(int) (/nix/store/f582fg8k06z2xg8zlwnrn4g895szwzfp-llvm-19.1.6-lib/lib/libLLVM.so.19.1+0xfeb45b)
 #2 0x00007f53043d5a70 __restore_rt (/nix/store/h7zcxabfxa7v5xdna45y2hplj31ncf8a-glibc-2.40-36/lib/libc.so.6+0x40a70)
 #3 0x00007f530fec7c0a clang::Sema::DeclareAggregateDeductionGuideFromInitList(clang::TemplateDecl*, llvm::MutableArrayRef<clang::QualType>, clang::SourceLocation) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0x2119c0a)
 #4 0x00007f530fae6347 clang::Sema::DeduceTemplateSpecializationFromInitializer(clang::TypeSourceInfo*, clang::InitializedEntity const&, clang::InitializationKind const&, llvm::MutableArrayRef<clang::Expr*>)::'lambda'(bool)::operator()(bool) const::'lambda'(clang::InitListExpr*)::operator()(clang::InitListExpr*) const (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0x1d38347)
 #5 0x00007f530fae6a75 clang::Sema::DeduceTemplateSpecializationFromInitializer(clang::TypeSourceInfo*, clang::InitializedEntity const&, clang::InitializationKind const&, llvm::MutableArrayRef<clang::Expr*>)::'lambda'(bool)::operator()(bool) const (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0x1d38a75)
 #6 0x00007f530fae729b clang::Sema::DeduceTemplateSpecializationFromInitializer(clang::TypeSourceInfo*, clang::InitializedEntity const&, clang::InitializationKind const&, llvm::MutableArrayRef<clang::Expr*>) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0x1d3929b)
 #7 0x00007f530f71940d clang::Sema::deduceVarTypeFromInitializer(clang::VarDecl*, clang::DeclarationName, clang::QualType, clang::TypeSourceInfo*, clang::SourceRange, bool, clang::Expr*) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0x196b40d)
 #8 0x00007f530f72e12d clang::Sema::DeduceVariableDeclarationType(clang::VarDecl*, bool, clang::Expr*) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0x198012d)
 #9 0x00007f530f75a73a clang::Sema::AddInitializerToDecl(clang::Decl*, clang::Expr*, bool) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0x19ac73a)
#10 0x00007f530ea8f5d5 clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::ForRangeInit*) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xce15d5)
#11 0x00007f530eaa4d74 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo&, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xcf6d74)
#12 0x00007f530eaa8db7 clang::Parser::ParseSimpleDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, bool, clang::Parser::ForRangeInit*, clang::SourceLocation*) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xcfadb7)
#13 0x00007f530eaa92b3 clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xcfb2b3)
#14 0x00007f530eb5b498 clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xdad498)
#15 0x00007f530eb5befa clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xdadefa)
#16 0x00007f530eb5d1e9 clang::Parser::ParseCompoundStatementBody(bool) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xdaf1e9)
#17 0x00007f530eb5dc6a clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xdafc6a)
#18 0x00007f530ea728be clang::Parser::ParseLexedMethodDef(clang::Parser::LexedMethod&) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xcc48be)
#19 0x00007f530ea7256d clang::Parser::ParseLexedMethodDefs(clang::Parser::ParsingClass&) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xcc456d)
#20 0x00007f530eacd2ff clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, clang::SourceLocation, clang::ParsedAttributes&, unsigned int, clang::Decl*) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xd1f2ff)
#21 0x00007f530eacf896 clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, clang::ParsedAttributes&) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xd21896)
#22 0x00007f530ea94246 clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*, clang::ImplicitTypenameContext) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xce6246)
#23 0x00007f530eb8d9c1 clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xddf9c1)
#24 0x00007f530eb8e98d clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xde098d)
#25 0x00007f530eb97b2d clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xde9b2d)
#26 0x00007f530eac28d7 clang::Parser::ParseInnerNamespace(llvm::SmallVector<clang::Parser::InnerNamespaceInfo, 4u> const&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, clang::BalancedDelimiterTracker&) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xd148d7)
#27 0x00007f530eac5f42 clang::Parser::ParseNamespace(clang::DeclaratorContext, clang::SourceLocation&, clang::SourceLocation) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xd17f42)
#28 0x00007f530eaa9612 clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xcfb612)
#29 0x00007f530eb97cf7 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xde9cf7)
#30 0x00007f530eb98c45 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xdeac45)
#31 0x00007f530ea7069a clang::ParseAST(clang::Sema&, bool, bool) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0xcc269a)
#32 0x00007f5310f8ade9 clang::FrontendAction::Execute() (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0x31dcde9)
#33 0x00007f5310fd1a5f clang::PrecompiledPreamble::Build(clang::CompilerInvocation const&, llvm::MemoryBuffer const*, clang::PreambleBounds, clang::DiagnosticsEngine&, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::shared_ptr<clang::PCHContainerOperations>, bool, llvm::StringRef, clang::PreambleCallbacks&) (/nix/store/ymbp8lmggn7qgb8lwrzyzxnbyz77x08r-clang-19.1.6-lib/lib/libclang-cpp.so.19.1+0x3223a5f)
#34 0x000000000077c560 (/nix/store/dvyzfs452dhmz21rammxqs5wxbnl44j4-clang-tools-19.1.6/bin/clangd+0x77c560)
#35 0x00000000007fefc7 (/nix/store/dvyzfs452dhmz21rammxqs5wxbnl44j4-clang-tools-19.1.6/bin/clangd+0x7fefc7)
#36 0x00000000007ffcb9 (/nix/store/dvyzfs452dhmz21rammxqs5wxbnl44j4-clang-tools-19.1.6/bin/clangd+0x7ffcb9)
#37 0x0000000000a38669 (/nix/store/dvyzfs452dhmz21rammxqs5wxbnl44j4-clang-tools-19.1.6/bin/clangd+0xa38669)
#38 0x00007f530442ba72 start_thread (/nix/store/h7zcxabfxa7v5xdna45y2hplj31ncf8a-glibc-2.40-36/lib/libc.so.6+0x96a72)
#39 0x00007f53044af23c __GI___clone3 (/nix/store/h7zcxabfxa7v5xdna45y2hplj31ncf8a-glibc-2.40-36/lib/libc.so.6+0x11a23c)
Signalled while building preamble
```
I've attached the offending [headers](https://github.com/user-attachments/files/18613126/range.tar.gz), but I can't share the relevant *.cpp file.

Should I move this issue to another repository? If so, which?
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsW1tT5DbT_jXmxsWULcunCy6GgUmoj83yBWord5QstT0KsuTIMszMr3_L9gw-zAHYLJOtSlIUYa1Ddz9Pq6Vuy6QseSYBLiz_0vKvzkhlFkpfFBz0mi6IKJ_4WaLY6uKeSwo2NzYpn4DZklMQK8ubWs7UCpzNjzO9u72e3l_bZZXkdV87qTJbQ6G0sY2yF8YUZT0IzS00z7hZVMmEqtxCcyGet_87L7T6E6ix0JyXZQWlheY2kczmkoqKgW0WYFNNyoWdEPpkNKEwsZzpvSH0yWZVXrR6ORPLiRtR0-ZnronM4PzZqydup9o-tNC8eUxEpjQ3i1oVaRaPICAHaSaLop7TdUPLm2JseVObVlqDNHZBdAnaNuoJpG2h0PIu69_O1P3R0nEt3K1l1zK5zGxJcigLQqEW3MxUtrLRD7fcCSxv6tuWN7svQAguM8u7-pgEBoZwYaE5VTLl2WbmwHPqmS3vum9ZaXTVOEAluZL1GEHK0q49sWerN7W8aU_Zx1S29ns_nnnP8qZxX8W0ktRwJd-jVPNMFaCJUdpCkYXiVlH8iYpyaVOVF6qSzC4NMU03u5EeWuGlFV7Vf6DYcqa2hTzHdpaO4zhh6nuOH7ue41K7WZWN9uVqY9qd5tI0S-2hXngWirpOmrw8qtJoILmFAgvNbC6NheJW6lzypYXmpVG6tib1I5Rm0ZMTrNEyi9biRWqJsyj2y_XLOi3Om1jgxhN3EpwLntTRYfv79vbbl0mpJnWrhS6dZQrguLSzxh1Z42A_se95Jon4lUgmoKbhdMol2E865VBfOewxn4SO_fiooZH-qM1elRbhmi5Jki5J-OwvmSTYX6FFIf70XEnTiJxngif0HE2wc-4FfYVorU3QqIIdEjqdJl5fkxRoSB1iU0Hq5V0Teg85af-6AiqIhmmWaciIgStgVeP_v1ScwVyr_EZyc8tLY6GoN8MD5IVo-lPRuPis51RfKkMSAVOtyep3SC1v1hv5_xURD6sC6tCAZgOtVKUp3CpKTBMd9lO4ypMiEnmWyfCvLInEi16v1kuZrNZhuHQifd7MeIDDto0WxYBI5LoxdUiHHx7gRyDwcHgIP1ZR2KJxXwDlRPB1Y8EWveZJ45l9AFcFtAbfyFRtIOy1dwPZtTTcrGyqZM1CcKhjI_P_uGSDnu9k5XpZ6FqJmpS4fWShUJA8YaSJJ1GilHhtGwe9betG9L7xI5Vrl9oKPTjr0TGtrFP5iMu8yMO9wOqPfYSE_n8-8m4fOSVvJPQ73oIRbyGKk38RbyfEPUZxb3cMB7iHbowdth931uD-jegax6NAfyO6twH1GtptrUHtN5LDqPV1Cxo-fou2tu339tQ2s1t3HvToBadTwRwHCXZYB3M0hBmBiw7AfLWFmdeu00OsheYwzj-J4ZHjop7h8dBwn4TegTPPlLGeRz2o1rRo5D67_L8auYXghMYSGnqbA0p9DB6c6oFEqc8Gm89dk772_u7RO00N6O2_lZ5KNjVG86QydZ45hoFsYvg4NO1IYNtAWS-eQwGtP2qudLOWai5O6zsUXJ_5HZruEE2CWYjfRPMXrapiiNddm0PWrfVusWt-B-hMSQNLsw-eAR0fg323__hMPfbpn4SQNGAh7ghBI0IiloRHUbjneTGIYYcceT_uY5T2ov42L7s99oTKo4i_xd0JGSEsCTtGvBEjMUq89wacn4SLnwbZBCVeh-wg14TET3AcHff1bdHnqx5H9UEg706H9zkR4hvQOpAPTob3Jt_6nYeq5oD4dsCpB72Pur3B5uPUnYwaRhiOo44af0wNpOQ7qPlZuDgljpD2TivBCEfmQnzUrtmmwPmK56Viq14GeTI7Uhfizo5wbAcNjvvDfFNMHtvx5lFz17Ooqg_lp10NKQ16LEbDLSBEUQJHdb6FJbAvYBaKXUG6e1Tadu71O62FlOIogc7CeGyhH7APWFgeNnFzMpwJUp44plGK_YC92ohGmQNlKE2Pr8U__vgCeQK6KYCknO7Z08fB5mgkes-WUMnm_SVrXzTsnKFPHM7cFKVpB-EoXaBpFAfHIaxp38A3LmEY9bSpPqgnaEo8H4HvcKrx0URhSikMlHzz8LqV_YFU5nSUITeKg46yUUIRY4SPU9bbvl8x2ZMdfxr234_5NqgSAx0H7QucnTpkXghOuXlYFSBJDq-znjATDxDu8TRMM5KIxdR9k6evervPXkF6Iw1oScSeWPw3k4Y3s_sdGk_n7iyNqdvBOMopIoij4xtZz90HaHLJd6P9p4A59s1_EExw4qi3Y46ygDhM0HEwr5etCx5MgT8LwBNCFCeoB1Ew2hFRxI7Xa26kBP3b9p7L-xKk_iTD8W1Undm4TpsGpccj54i_X2e4JIJICuwKBM-5Af2gCX0CfeKtzsUR6yo1KBxx4acYHeWiT8MPrNP8Y2_zmRumGHWAROPSVeAeB-S_0tXh0lXg9pCNx5GRpseX_b8iMtK0W43D61eQxBHFx1_UPKjiFp5B7L6U-lqQvyq4M6Ow-Pouonnvu6dq1L34-qJYJeAmL5Q2TUnixJEKCMXdaxdvlEeFThDvllOm9w-jXLM2Z1hdP3FZiFIUxF1hZHDvy3XSiLBheWuu62gh2bQ5VbXPrpdAq5qA6ISKey6jrFfQGtwTc52UucQfFgM0UJUXXAC700DyRMBm66u4YENeZm1HfSOfN8Hp0F0FyJVeXVZpCnrbZaf-tZF2qSrJynHSy0kmVWk4La9lxiXsiLiRRlclf4bfIZ1J066Zrvk53Vx6nHMB96vSQL65jVYa1raUC6KBPRbj1XY3-7WO_YRL0F-bCy5cyXIzeuuPvcOM0Vxm9crcb9-MCJEQ-nTi9NhDyCN-V9J4vfDW_heG1A-cvcqw59U6LbGP2CJfI1eTPF_-Vfovy0QKjP_EG2WMUqLcqGShecI3l31lxhoFWgmdfH8oP4WUhp8qv5HQyQ9G8lOa7Cfjh8mvJXTyw4F84kVB8KnyWwmd_MEZCWOUkBDZpSHaPJqFBsI-7-pqHJCwO1MMr3FgTFLkUfvx8Zebx8dHKpQE7_NUcV2CvM1t4_ZSsQBmvyy4ADupIx6XmV1sA-HwC4kbC4XPYBNjCF0Aaz5mUGkKshlk-ZcLIAx0aflXFoqOfDFRlaDP22lykKa00Dzlovlawo0C13PrSNHeHZ8YoifZurldN7OTytg3NiXSQqGxmwDWaKFBwDNp7ohPJ7Qo7Hq6Sa2-M71fqEow-8bO1XPdm5d2822GbZRNpDIL0M13HiU3Sq8sb27fpHbZJFsvC04Xljc_Yxcei72YnMGFG3oRimMUeWeLCzeJqR-liAFB2MMBxtjFYeizGKcRwt4Zv0AO8h3Xcx3sY-xNEgiIR3zCgtCNcAIWdiAnXEzqgDpROjtrlLtwke8G4ZkgCYiy-cQFIQkvreoWQpZ_daYvmqvcSZWVFnYEL03ZTWO4EXBhBc5mSQTO5sOTluvttwBW4Lz7jn7gnFVaXHz_pzAbo54v0P8CAAD__8Z0OIY">