<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJztXFt327gR_jXyC450eL88-EGR463b7NqN3Hb75AOCoMQNRXBB0rH313cGJCWComQlK-WkbXIcyyKAwXzfDAYDEGQk4tfrxzUnicgy8TnNVyTNn2mWxqSSNC8zWqUiJ3WeVhPjZmLM29-e0f6orxXfFFCTT-xF9VrwnG44eZzY75tSJnLGi4owMrFviOS_16nk5cQKHkk1sUIy8d-RBL7il4n9Dr7fwEe_O1pXQlVhBP9s6vUrPAtQeAUVWnldWYiNDK0-CB-D0KpK65KXhOaEliWXCntC06yWHHghLKNA0Oe0WpMKONvwsqQrfoQY1WBivcMfe04m1q0UAnDeZtnzZlpI8Rtn3Vf4SHOW1THfXZjfPMLvW5HFYJklr2ZrEOP4IQpTmFU9ew4_u0p3YAywxA2X6TOPJ9aisYWqdZcjrF8EdhKA7LkizH2nMLUtlJl2ghcir_hLVdNs1wWIb6B1NUrwljSvluAuZUIZEocdMywhvarz5WMrb2J5Sqt35FF1-LY89wZhz7eGAZYbOI3KKOQXgmItDz4sBEloJjmNX8F4TcWJZULRxPKVWXk8a-z08OH9fPmelHW0SStCSVSvwFELISsCnreuqqJE1axb-FkBVXU0Y2Kzs9PAnGlZ1ujht-BJMWmtqlyGSVquSUTZJwDIOHJUQEdSMPAlwFGKWjaXsSU4oWApRYCyzknJZFpUrcrLCoSQuN4UqJm6ZEBR-CDFStINoXJVb3hela3jiQI1A60LwC2n_KXIhOQSryHz063Dl9MKOvsEBVGad8WND5PpikwFSqNFgTLrqqirWUmmG2SATKcvgQeSNtPyNa_oC5gEjMgzMl1C2YqxaSVExtZgWjTYMaWwcpnTolyLikwTJqBgGqd0lYuyShl0meRiqujUL5dVDLJZo7BlgGcsWlK7eGQiTdple-7DfxeZYrWUwBopqAQ-wPqfOHia5WMMgd9KgDUiAJx5bhooAVtiHE3qXPktiSDGoojVVoB9VAAGGmBE1OABZQXWRzMSFdx8jG0QwRp9lCwosA1ivBjwz3U9l3nMYT5LyIPEAYRe8oiutkxXOc3-Am6VIcEBho92_DdF5YwV6EuG-r-VbQ5kUzc2etGhfC3bQZtxmtfFfd5Igx7qvIQ_wXczgQ4UNhDO4ojwY7zYVCmjMWFp2kaB7bkBWaCXfORMPHP5OuQBSELdtDptiBonxG678JPEcCmNQ5sZ5OkJprQKcDzJ1lS3WRrBbxgQT54zzdK8fpmu8ropKKo1xqVZKWaGwmK6IEVD4mjduDQwg4hAUCz5CfIZSvaUZMeDhppkV5cc-IEbEhqJkzTvSbZcaKhJ9oaS_a3VT5bpW7pMX5cZBontfZlM24Mmmsyg7yVB7FpWEPQnoCXf0Nar15x9OjS_Bb0mv0DOE99wljVznhpZi944mUtJXz_yRJ85378UctcA4sAJbR7bZGveBvi2WV99FVY-wnc-KDmExLvA8HQjxatGfNgnPrQ813Di48Rj5tghvot1zhe__rpkouDLgrOORW-Uiw-C0W1OsitEe1GpStB-d3kiDsnZ2re1rE4qajleOLTWh7Ss-v3ML8C8Zyhit8xjFNemiND2mOkxTU_J-SNm_ImQ4H4LUInmIn_diLokmNCXhcpXQh0WJGAVzSvIUYTcJplbOS0zaJ8U1hR_KKbR5wd2PFytmZ_AK_Y75PvhGYGaOlDXTlx-caD7mL5WfUtXP_AcKxkfIcs6KqsjHWtu-HOdVekH_syzMYfsOf35ndFUGDRntAfx14h8kzCasRo1OyXcKhoOD9IvCsKnBtQDQeQ4tftK6jH_9Pjc1IDUL6ObKKYqBxwavh9VmqsQHqXyWbU2Pt6iXa4ht-2QHPdRZ2A-k0NKGEFm_6YNgfcfVj6zld-fwtlXqrP4MSrPbS-1P9FNC0eHmTvMUr2Q_shSL5ClAq_a9OQN5uDYso9lqb05Pb5tF_0d_B2UcjBUjjlvJ6WXUv55vr8lqzDpI2kaq77OquXYzgF3vk3ztFwPEd3wuB5x6SHjo5wtNzTL_skZTITt7qi2CgDBPB5lUIWJ7UaG2is4bqlhXCm3qHYKtjhwGdA2OFHTHUX3Ml2lOc0WUBsUBl21EY2TsS632416kspz1Gzd5gSI8wIeoAyseUAw8ADXpHy4jT3QU5Xu9FRVYErKcAf1KckP0dOYdGjR8mTPOWEB9wWxcxc1z-85J1v6LUX_XtPs8bXgjTt0v7XJzWxmt23W0e3r9Rc4Wx3H5zRtAyBgrmXzA8sb8K5_pdV6WSdJylLebmUum8XZ8Uh6qjddYDahClHf663Bytu2ITKOQ_7htWfx2vOHMmUzzaj6LoPJGPOjcaPO4-3Mcv_MZSZovKB5nMZ4v_QrLItX5wxvFz3QVH4js-9pjvcAdVMOP_uZBwRsJbrp-uYDXvhbmsdv9fJAJd3cyxitpsw6U5NcIUUxM13L6YJP13A05lj6lorJLeq7BMzSteIx6nPAKONLmu_bCKeQYg9JiQ3joAMfYGoQmf6RS16K7JnHH4T4VBe9najLYT5_CE8UF9podwZk2UbIxsmK6jQb0KU01lwK96z3B_b4xt1JpP5cVzTK-Bdye3QJMk78ULu5ClgfeQmr7fFeoT7w3cTnS-x1g7nQGpq53IG5nMgNx831bt9c-zuq57LXiTnLBYzZU2IYKc5vDmRbM4e2nA4SK4oO3fRR5jiDEf536Y0Vexq9vk4vjAb3QH4Jo_U-_y-m9wJ0KrY0OvV7w1HILUO7N_ygDob0_n4QZZWkL6gl5APQq1qyvOj8flmgPD_QUOHQgIYDoAGL-FGgC9rcb2pQ6vj6lbGe-t6lePqgGOZS_aaYymPzZaUSsWHTi_hAqJD3qdHP0wA1kRd6l6Xmu-ID4Wp8mEM-fOv4mJiXuGOGye8prAxQXgSSb2nerx8UAkjM0XOEPUjfCRDUUwOi30uNEosH8ZtAlt2xssNY1N_xstpU2wObF8Cj1NXwOAM8NmXWUTxbLPeyd55jnlRczqtKplHdrFRG91gHG4iAto3FtlXvNoBPp-jorDacR5v2OyVxv6u9H3KRWx2hIlNj2x2w7TgO-wq2vxd6L8EZUqJx5g05S3h0fHZoT3NuuXsn4ldQ9FJJYqhU0nT2Bzq7dnJc524zaqjzYBPkgFNrHtOklhfyaASiIR3kb24QR85JSG94kubp_g2mh-Y8b-fteJTiba_dnfc5fKSs3-pDs9vVhoPmFvVl_FkRojE2SAT9yODHIy5S8ZMUdXGQKDzKNb5r1lD4J-Jlq8itkCpU3uGTKReiSjHRp8oZJIauk4THswaEfC97LnYHwGVzPvrkmWCPhKMsN_uS6jBdkm53Ts_sRAhcY2aQIsIHN99kpp09NIIOjsGv5Wd_z2qMn1lBZTVrHhYijbKjG6eONQQaxMYb-VZjcX26PB-4S5gXQWnmHWSZ8Ns67viPolCnb5pJog_3vqC_1_yhksO78G1QUbsG7y-8yRsqBBrEQeLpMG9kbM-XjwfvD1x67ydUKmk6a-mbzzzPZtrCbCFi_hPP5-3pu2a_gTPwsnl3lOICmjpUKaJpqiVNvgefgRYfbiVOCXk8ouqFlHSUDpqSWpbku9Q0ParT2XTbnPjBJ3fGGD2M6iJJkGMrPTUggc4243Gi7Qm2Ku_wPG8n3eAY3ovEG8ivUT8NgJaTOC53Izziz8ynDT47dui-8JrunVPTr8GF3nNPZ8Zh2krNPg7XGOAwkiAkHfsL81GFivG1U3f8Zw-UcqIYH9Ucn6JcbS72HceDz3Oes2n6bl1kYYKXbGgeD8fsqIl2F-8L7J5m2sUlzIH5qpkBSGtB9UAfFj49sZcX02y-RLRM2VOp6rcsaZXxwhMed8MHIJvigThAh07fLFKbctLdptI22BryVZvBOc-9kzB_FdG4SfaeS2MwpfaesR15-qwp-VjnS5rw7FVj9Fufa7FDpbHm2vbAy4Ig0TZJ_x-95Oyh0VK0arw7Ou9mHJr0IO9KBbo3pXbG0KL9oCFWOLR0PVJ13gaoC_Gh4Gp8uAM-uEuTL-UDxm15mAwoHTwlc_zE5tZ5CjwcYi_2j40e5a_zsIvSiCxpNOoJmmN5gXfQrW56f2upxEgOcYj-b0vj2QlU_GgE-vpUb1DLTgimK-fPM5RsrfMu4euevA2NyCZPT_ggLIQ_WNo-9TQ59VlcH4RovQyzMoMmlDTyL5BMofRt901z0wFLEy4lxuN54wokaZNsfGpeuUDzaofmPR38JcWBG3Ni2g4qWZecTJ_xtQ4lx5d67DLftqcu6SWSV7XMOTohNj7y2pAlSqpIBt6IztgrGbw6QsSRyKqZkAD19g_4n7z82_stL19-7ze6g-xiQ3JRkRJfPPJ5TSv18ohFQw5B1DVdcSLrjJfdG1XImsvmHmFdkZgXwAi-hkDkZC0-Y_tX8lnIT-r1AhTfcpKln_ClFGlJcAvNL0khyjKNMk7uQKY6E98UA8EbQsn4a2Fmfc0fsXomxKeSxGmScPUqBdX869-h4Ti24XS4NvQ1Um_SgHzIl807NUq64bOr-NqOQzukV7Su1kJex_Q5jctK5Pyqltn11_fv2pZpX62vbZvGjm173KKG65vMp5YT-l5iRyyglHtXGY14Vl5PXDCSlfPPRInA1424N1d_XoP02jIsyzBN13BM1_ZngecFjPEwCSIjotyeOAaHUZ7NUA762JW8ViKjelVCYQZzWLkrpOoeLedKYdCwSquMX-9er9J7742EEC9L8G7Svcsn3T7zAlWvlKbXSs3_AFZfezI>53213</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Assertion failure in recursive concept instantiation
        </td>
    </tr>

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

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

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

<pre>
    The following invalid translation unit

```
template<typename T>
concept c = requires(T t) { f(t); };

auto f(c auto);

void g() {
        f(0);
}
```

causes an assertion failure in clang with the message

```
clang++: /root/llvm-project/llvm/include/llvm/ADT/FoldingSet.h:479: void llvm::FoldingSetImpl<Derived, T>::InsertNode(T*) [with Derived = llvm::ContextualFoldingSet<clang::ConstraintSatisfaction, const clang::ASTContext&>; T = clang::ConstraintSatisfaction]: Assertion `Inserted == N && "Node already inserted!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/clang++ -g -o /app/output.s -mllvm --x86-asm-syntax=intel -S --gcc-toolchain=/opt/compiler-explorer/gcc-snapshot -fcolor-diagnostics -fno-crash-diagnostics -std=c++20 <source>
1.      <source>:7:5: current parser token ')'
2.      <source>:6:10: parsing function body 'g'
3.      <source>:6:10: in compound statement ('{}')
 #0 0x00005565c6c4c7cf PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x00005565c6c4a5d0 llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3a4a5d0)
 #2 0x00005565c6b83658 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007ff05aad93c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x153c0)
 #4 0x00007ff05a5a818b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4618b)
 #5 0x00007ff05a587859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x25859)
 #6 0x00007ff05a587729 (/lib/x86_64-linux-gnu/libc.so.6+0x25729)
 #7 0x00007ff05a598f36 (/lib/x86_64-linux-gnu/libc.so.6+0x36f36)
 #8 0x00005565c8d52288 clang::Sema::CheckConstraintSatisfaction(clang::NamedDecl const*, llvm::ArrayRef<clang::Expr const*>, llvm::ArrayRef<clang::TemplateArgument>, clang::SourceRange, clang::ConstraintSatisfaction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x5b52288)
 #9 0x00005565c926504d clang::Sema::CheckConceptTemplateId(clang::CXXScopeSpec const&, clang::SourceLocation, clang::DeclarationNameInfo const&, clang::NamedDecl*, clang::ConceptDecl*, clang::TemplateArgumentListInfo const*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x606504d)
#10 0x00005565c936c16c clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformConceptSpecializationExpr(clang::ConceptSpecializationExpr*) SemaTemplateInstantiate.cpp:0:0
#11 0x00005565c9353f5e clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) SemaTemplateInstantiate.cpp:0:0
#12 0x00005565c938642f clang::Sema::SubstExpr(clang::Expr*, clang::MultiLevelTemplateArgumentList const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x618642f)
#13 0x00005565c8d50b71 calculateConstraintSatisfaction(clang::Sema&, clang::NamedDecl const*, llvm::ArrayRef<clang::TemplateArgument>, clang::SourceLocation, clang::MultiLevelTemplateArgumentList&, clang::Expr const*, clang::ConstraintSatisfaction&)::'lambda'(clang::Expr const*)::operator()(clang::Expr const*) const SemaConcept.cpp:0:0
#14 0x00005565c8d51ed0 bool calculateConstraintSatisfaction<calculateConstraintSatisfaction(clang::Sema&, clang::NamedDecl const*, llvm::ArrayRef<clang::TemplateArgument>, clang::SourceLocation, clang::MultiLevelTemplateArgumentList&, clang::Expr const*, clang::ConstraintSatisfaction&)::'lambda'(clang::Expr const*)>(clang::Sema&, clang::Expr const*, clang::ConstraintSatisfaction&, calculateConstraintSatisfaction(clang::Sema&, clang::NamedDecl const*, llvm::ArrayRef<clang::TemplateArgument>, clang::SourceLocation, clang::MultiLevelTemplateArgumentList&, clang::Expr const*, clang::ConstraintSatisfaction&)::'lambda'(clang::Expr const*)&&) SemaConcept.cpp:0:0
#15 0x00005565c8d5269a clang::Sema::CheckConstraintSatisfaction(clang::NamedDecl const*, llvm::ArrayRef<clang::Expr const*>, llvm::ArrayRef<clang::TemplateArgument>, clang::SourceRange, clang::ConstraintSatisfaction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x5b5269a)
#16 0x00005565c938d23d clang::Sema::CheckInstantiatedFunctionTemplateConstraints(clang::SourceLocation, clang::FunctionDecl*, llvm::ArrayRef<clang::TemplateArgument>, clang::ConstraintSatisfaction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x618d23d)
#17 0x00005565c932434a clang::Sema::FinishTemplateArgumentDeduction(clang::FunctionTemplateDecl*, llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, unsigned int, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, llvm::SmallVectorImpl<clang::Sema::OriginalCallArg> const*, bool, llvm::function_ref<bool ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x612434a)
#18 0x00005565c93251ae void llvm::function_ref<void ()>::callback_fn<clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool, llvm::function_ref<bool (llvm::ArrayRef<clang::QualType>)>)::'lambda1'()>(long) SemaTemplateDeduction.cpp:0:0
#19 0x00005565c8c523ef clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x5a523ef)
#20 0x00005565c9333d23 clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool, llvm::function_ref<bool (llvm::ArrayRef<clang::QualType>)>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6133d23)
#21 0x00005565c91ccc7b clang::Sema::AddTemplateOverloadCandidate(clang::FunctionTemplateDecl*, clang::DeclAccessPair, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool, bool, clang::CallExpr::ADLCallKind, clang::OverloadCandidateParamOrder) (.constprop.1524) SemaOverload.cpp:0:0
#22 0x00005565c91e2a75 AddOverloadedCallCandidate(clang::Sema&, clang::DeclAccessPair, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool) SemaOverload.cpp:0:0
#23 0x00005565c91e2d00 clang::Sema::AddOverloadedCallCandidates(clang::UnresolvedLookupExpr*, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x5fe2d00)
#24 0x00005565c91e309c clang::Sema::buildOverloadedCallSet(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::OverloadCandidateSet*, clang::ActionResult<clang::Expr*, true>*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x5fe309c)
#25 0x00005565c91e4b59 clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x5fe4b59)
#26 0x00005565c8f2bb4d clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x5d2bb4d)
#27 0x00005565c8f30953 clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x5d30953)
#28 0x00005565c8b9e208 clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x599e208)
#29 0x00005565c8b98cbe clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x5998cbe)
#30 0x00005565c8b9b696 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x599b696)
#31 0x00005565c8b9b728 clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x599b728)
#32 0x00005565c8b9c459 clang::Parser::ParseExpression(clang::Parser::TypeCastState) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x599c459)
#33 0x00005565c8bf2e8d clang::Parser::ParseExprStatement(clang::Parser::ParsedStmtContext) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x59f2e8d)
#34 0x00005565c8bf3ac2 clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributesWithRange&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x59f3ac2)
#35 0x00005565c8bf444c clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x59f444c)
#36 0x00005565c8bf4feb clang::Parser::ParseCompoundStatementBody(bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x59f4feb)
#37 0x00005565c8bf53fb clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x59f53fb)
#38 0x00005565c8b58db4 clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x5958db4)
#39 0x00005565c8b7b0e2 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x597b0e2)
#40 0x00005565c8b54f99 clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributesWithRange&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x5954f99)
#41 0x00005565c8b556e1 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributesWithRange&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (.part.280) Parser.cpp:0:0
#42 0x00005565c8b558d0 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x59558d0)
#43 0x00005565c8b56529 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x5956529)
#44 0x00005565c8b4c699 clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x594c699)
#45 0x00005565c7c663c8 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4a663c8)
#46 0x00005565c7605581 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4405581)
#47 0x00005565c75a116a clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x43a116a)
#48 0x00005565c76cedf3 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x44cedf3)
#49 0x00005565c45e5bec cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x13e5bec)
#50 0x00005565c45e0f89 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#51 0x00005565c7446565 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#52 0x00005565c6b83c43 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3983c43)
#53 0x00005565c74488f6 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x42488f6)
#54 0x00005565c741d91a clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x421d91a)
#55 0x00005565c741e5af clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x421e5af)
#56 0x00005565c742686a clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x422686a)
#57 0x00005565c450a23f main (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x130a23f)
#58 0x00007ff05a5890b3 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b3)
#59 0x00005565c45e0afa _start (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x13e0afa)
clang-14: error: clang frontend command failed with exit code 134 (use -v to see invocation)
Compiler returned: 134
```

See it live:

https://godbolt.org/z/fxY6jnsxq

I'm not sure what the C++ language rules require here, but depending on how they work in cases like this it's possible I reduced this from a valid translation unit.

This looks different from https://github.com/llvm/llvm-project/issues/44304, but maybe they're the same.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztXFt327gR_jXyC450eL88-EGR463b7NqN3Hb75AOCoMQNRXBB0rH313cGJCWComQlK-WkbXIcyyKAwXzfDAYDEGQk4tfrxzUnicgy8TnNVyTNn2mWxqSSNC8zWqUiJ3WeVhPjZmLM29-e0f6orxXfFFCTT-xF9VrwnG44eZzY75tSJnLGi4owMrFviOS_16nk5cQKHkk1sUIy8d-RBL7il4n9Dr7fwEe_O1pXQlVhBP9s6vUrPAtQeAUVWnldWYiNDK0-CB-D0KpK65KXhOaEliWXCntC06yWHHghLKNA0Oe0WpMKONvwsqQrfoQY1WBivcMfe04m1q0UAnDeZtnzZlpI8Rtn3Vf4SHOW1THfXZjfPMLvW5HFYJklr2ZrEOP4IQpTmFU9ew4_u0p3YAywxA2X6TOPJ9aisYWqdZcjrF8EdhKA7LkizH2nMLUtlJl2ghcir_hLVdNs1wWIb6B1NUrwljSvluAuZUIZEocdMywhvarz5WMrb2J5Sqt35FF1-LY89wZhz7eGAZYbOI3KKOQXgmItDz4sBEloJjmNX8F4TcWJZULRxPKVWXk8a-z08OH9fPmelHW0SStCSVSvwFELISsCnreuqqJE1axb-FkBVXU0Y2Kzs9PAnGlZ1ujht-BJMWmtqlyGSVquSUTZJwDIOHJUQEdSMPAlwFGKWjaXsSU4oWApRYCyzknJZFpUrcrLCoSQuN4UqJm6ZEBR-CDFStINoXJVb3hela3jiQI1A60LwC2n_KXIhOQSryHz063Dl9MKOvsEBVGad8WND5PpikwFSqNFgTLrqqirWUmmG2SATKcvgQeSNtPyNa_oC5gEjMgzMl1C2YqxaSVExtZgWjTYMaWwcpnTolyLikwTJqBgGqd0lYuyShl0meRiqujUL5dVDLJZo7BlgGcsWlK7eGQiTdple-7DfxeZYrWUwBopqAQ-wPqfOHia5WMMgd9KgDUiAJx5bhooAVtiHE3qXPktiSDGoojVVoB9VAAGGmBE1OABZQXWRzMSFdx8jG0QwRp9lCwosA1ivBjwz3U9l3nMYT5LyIPEAYRe8oiutkxXOc3-Am6VIcEBho92_DdF5YwV6EuG-r-VbQ5kUzc2etGhfC3bQZtxmtfFfd5Igx7qvIQ_wXczgQ4UNhDO4ojwY7zYVCmjMWFp2kaB7bkBWaCXfORMPHP5OuQBSELdtDptiBonxG678JPEcCmNQ5sZ5OkJprQKcDzJ1lS3WRrBbxgQT54zzdK8fpmu8ropKKo1xqVZKWaGwmK6IEVD4mjduDQwg4hAUCz5CfIZSvaUZMeDhppkV5cc-IEbEhqJkzTvSbZcaKhJ9oaS_a3VT5bpW7pMX5cZBontfZlM24Mmmsyg7yVB7FpWEPQnoCXf0Nar15x9OjS_Bb0mv0DOE99wljVznhpZi944mUtJXz_yRJ85378UctcA4sAJbR7bZGveBvi2WV99FVY-wnc-KDmExLvA8HQjxatGfNgnPrQ813Di48Rj5tghvot1zhe__rpkouDLgrOORW-Uiw-C0W1OsitEe1GpStB-d3kiDsnZ2re1rE4qajleOLTWh7Ss-v3ML8C8Zyhit8xjFNemiND2mOkxTU_J-SNm_ImQ4H4LUInmIn_diLokmNCXhcpXQh0WJGAVzSvIUYTcJplbOS0zaJ8U1hR_KKbR5wd2PFytmZ_AK_Y75PvhGYGaOlDXTlx-caD7mL5WfUtXP_AcKxkfIcs6KqsjHWtu-HOdVekH_syzMYfsOf35ndFUGDRntAfx14h8kzCasRo1OyXcKhoOD9IvCsKnBtQDQeQ4tftK6jH_9Pjc1IDUL6ObKKYqBxwavh9VmqsQHqXyWbU2Pt6iXa4ht-2QHPdRZ2A-k0NKGEFm_6YNgfcfVj6zld-fwtlXqrP4MSrPbS-1P9FNC0eHmTvMUr2Q_shSL5ClAq_a9OQN5uDYso9lqb05Pb5tF_0d_B2UcjBUjjlvJ6WXUv55vr8lqzDpI2kaq77OquXYzgF3vk3ztFwPEd3wuB5x6SHjo5wtNzTL_skZTITt7qi2CgDBPB5lUIWJ7UaG2is4bqlhXCm3qHYKtjhwGdA2OFHTHUX3Ml2lOc0WUBsUBl21EY2TsS632416kspz1Gzd5gSI8wIeoAyseUAw8ADXpHy4jT3QU5Xu9FRVYErKcAf1KckP0dOYdGjR8mTPOWEB9wWxcxc1z-85J1v6LUX_XtPs8bXgjTt0v7XJzWxmt23W0e3r9Rc4Wx3H5zRtAyBgrmXzA8sb8K5_pdV6WSdJylLebmUum8XZ8Uh6qjddYDahClHf663Bytu2ITKOQ_7htWfx2vOHMmUzzaj6LoPJGPOjcaPO4-3Mcv_MZSZovKB5nMZ4v_QrLItX5wxvFz3QVH4js-9pjvcAdVMOP_uZBwRsJbrp-uYDXvhbmsdv9fJAJd3cyxitpsw6U5NcIUUxM13L6YJP13A05lj6lorJLeq7BMzSteIx6nPAKONLmu_bCKeQYg9JiQ3joAMfYGoQmf6RS16K7JnHH4T4VBe9najLYT5_CE8UF9podwZk2UbIxsmK6jQb0KU01lwK96z3B_b4xt1JpP5cVzTK-Bdye3QJMk78ULu5ClgfeQmr7fFeoT7w3cTnS-x1g7nQGpq53IG5nMgNx831bt9c-zuq57LXiTnLBYzZU2IYKc5vDmRbM4e2nA4SK4oO3fRR5jiDEf536Y0Vexq9vk4vjAb3QH4Jo_U-_y-m9wJ0KrY0OvV7w1HILUO7N_ygDob0_n4QZZWkL6gl5APQq1qyvOj8flmgPD_QUOHQgIYDoAGL-FGgC9rcb2pQ6vj6lbGe-t6lePqgGOZS_aaYymPzZaUSsWHTi_hAqJD3qdHP0wA1kRd6l6Xmu-ID4Wp8mEM-fOv4mJiXuGOGye8prAxQXgSSb2nerx8UAkjM0XOEPUjfCRDUUwOi30uNEosH8ZtAlt2xssNY1N_xstpU2wObF8Cj1NXwOAM8NmXWUTxbLPeyd55jnlRczqtKplHdrFRG91gHG4iAto3FtlXvNoBPp-jorDacR5v2OyVxv6u9H3KRWx2hIlNj2x2w7TgO-wq2vxd6L8EZUqJx5g05S3h0fHZoT3NuuXsn4ldQ9FJJYqhU0nT2Bzq7dnJc524zaqjzYBPkgFNrHtOklhfyaASiIR3kb24QR85JSG94kubp_g2mh-Y8b-fteJTiba_dnfc5fKSs3-pDs9vVhoPmFvVl_FkRojE2SAT9yODHIy5S8ZMUdXGQKDzKNb5r1lD4J-Jlq8itkCpU3uGTKReiSjHRp8oZJIauk4THswaEfC97LnYHwGVzPvrkmWCPhKMsN_uS6jBdkm53Ts_sRAhcY2aQIsIHN99kpp09NIIOjsGv5Wd_z2qMn1lBZTVrHhYijbKjG6eONQQaxMYb-VZjcX26PB-4S5gXQWnmHWSZ8Ns67viPolCnb5pJog_3vqC_1_yhksO78G1QUbsG7y-8yRsqBBrEQeLpMG9kbM-XjwfvD1x67ydUKmk6a-mbzzzPZtrCbCFi_hPP5-3pu2a_gTPwsnl3lOICmjpUKaJpqiVNvgefgRYfbiVOCXk8ouqFlHSUDpqSWpbku9Q0ParT2XTbnPjBJ3fGGD2M6iJJkGMrPTUggc4243Gi7Qm2Ku_wPG8n3eAY3ovEG8ivUT8NgJaTOC53Izziz8ynDT47dui-8JrunVPTr8GF3nNPZ8Zh2krNPg7XGOAwkiAkHfsL81GFivG1U3f8Zw-UcqIYH9Ucn6JcbS72HceDz3Oes2n6bl1kYYKXbGgeD8fsqIl2F-8L7J5m2sUlzIH5qpkBSGtB9UAfFj49sZcX02y-RLRM2VOp6rcsaZXxwhMed8MHIJvigThAh07fLFKbctLdptI22BryVZvBOc-9kzB_FdG4SfaeS2MwpfaesR15-qwp-VjnS5rw7FVj9Fufa7FDpbHm2vbAy4Ig0TZJ_x-95Oyh0VK0arw7Ou9mHJr0IO9KBbo3pXbG0KL9oCFWOLR0PVJ13gaoC_Gh4Gp8uAM-uEuTL-UDxm15mAwoHTwlc_zE5tZ5CjwcYi_2j40e5a_zsIvSiCxpNOoJmmN5gXfQrW56f2upxEgOcYj-b0vj2QlU_GgE-vpUb1DLTgimK-fPM5RsrfMu4euevA2NyCZPT_ggLIQ_WNo-9TQ59VlcH4RovQyzMoMmlDTyL5BMofRt901z0wFLEy4lxuN54wokaZNsfGpeuUDzaofmPR38JcWBG3Ni2g4qWZecTJ_xtQ4lx5d67DLftqcu6SWSV7XMOTohNj7y2pAlSqpIBt6IztgrGbw6QsSRyKqZkAD19g_4n7z82_stL19-7ze6g-xiQ3JRkRJfPPJ5TSv18ohFQw5B1DVdcSLrjJfdG1XImsvmHmFdkZgXwAi-hkDkZC0-Y_tX8lnIT-r1AhTfcpKln_ClFGlJcAvNL0khyjKNMk7uQKY6E98UA8EbQsn4a2Fmfc0fsXomxKeSxGmScPUqBdX869-h4Ti24XS4NvQ1Um_SgHzIl807NUq64bOr-NqOQzukV1VaZfx695qQ3vtbJIQqWYKVSPdOmnT77AZUvapldv31irq2ZdpX62uTuj6Eh8hybdtwfd-wQyu0DGrHfkyp719lNOJZeT1xwZpWzj8TJQLfS-LeXKXXlmFZhmm6hmO6tj8LPC9gjIdJEBkR5fbEMTgM5myGeqArXclrpVJUr0oozGCqKneFVN2K5Vx1B_JpXa2FvI7pcxqXlcj5ler9Wmn_HyWIZNc">