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

    <tr>
        <th>Summary</th>
        <td>
            [clang] Assertion `Constructor->getInheritedConstructor() && !Constructor->doesThisDeclarationHaveABody() && !Constructor->isDeleted()` failed
        </td>
    </tr>

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

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

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

<pre>
    Goes back to clang-17: https://godbolt.org/z/PTzPbaM4j

Input test:

```c++
struct base {
  base (int, int) {}
};

template<class>
struct derived : base {
    using base::base;
 base derived_base_0;
        derived() : derived_base_0(42, 42) {}
};

int main ()
{
  derived<int> (13, 42);
}
```

Stack Dump:

```c++
clang++: /root/llvm-project/clang/lib/Sema/SemaDeclCXX.cpp:14237: void clang::Sema::DefineInheritingConstructor(clang::SourceLocation, clang::CXXConstructorDecl*): Assertion `Constructor->getInheritedConstructor() && !Constructor->doesThisDeclarationHaveABody() && !Constructor->isDeleted()` 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++ -gdwarf-4 -g -o /app/output.s -mllvm --x86-asm-syntax=intel -fno-verbose-asm -S --gcc-toolchain=/opt/compiler-explorer/gcc-snapshot -fcolor-diagnostics -fno-crash-diagnostics <source>
1.      <source>:14:24: current parser token ';'
2.      <source>:13:1: parsing function body 'main'
3.      <source>:13:1: in compound statement ('{}')
 #0 0x0000000003e95b68 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3e95b68)
 #1 0x0000000003e937f4 llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3e937f4)
 #2 0x0000000003dd8688 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007bedbac42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007bedbac969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #5 0x00007bedbac42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #6 0x00007bedbac287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #7 0x00007bedbac2871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #8 0x00007bedbac39e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
 #9 0x0000000006940087 clang::Sema::DefineInheritingConstructor(clang::SourceLocation, clang::CXXConstructorDecl*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6940087)
#10 0x00000000069dc743 void llvm::function_ref<void ()>::callback_fn<clang::Sema::MarkFunctionReferenced(clang::SourceLocation, clang::FunctionDecl*, bool)::'lambda'()>(long) SemaExpr.cpp:0:0
#11 0x0000000007d8f151 clang::StackExhaustionHandler::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x7d8f151)
#12 0x00000000069dac2f clang::Sema::MarkFunctionReferenced(clang::SourceLocation, clang::FunctionDecl*, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x69dac2f)
#13 0x0000000006ba463f PerformConstructorInitialization(clang::Sema&, clang::InitializedEntity const&, clang::InitializationKind const&, llvm::MutableArrayRef<clang::Expr*>, clang::InitializationSequence::Step const&, bool&, bool, bool, clang::SourceLocation, clang::SourceLocation) SemaInit.cpp:0:0
#14 0x0000000006bab31a clang::InitializationSequence::Perform(clang::Sema&, clang::InitializedEntity const&, clang::InitializationKind const&, llvm::MutableArrayRef<clang::Expr*>, clang::QualType*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6bab31a)
#15 0x0000000006ab05e7 clang::Sema::BuildCXXTypeConstructExpr(clang::TypeSourceInfo*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6ab05e7)
#16 0x0000000006b0fb4d clang::Sema::ActOnCXXTypeConstructExpr(clang::OpaquePtr<clang::QualType>, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6b0fb4d)
#17 0x0000000006552855 clang::Parser::ParseCXXTypeConstructExpression(clang::DeclSpec const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6552855)
#18 0x0000000006535f4a clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6535f4a)
#19 0x0000000006536a87 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6536a87)
#20 0x0000000006536b19 clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6536b19)
#21 0x000000000653b679 clang::Parser::ParseExpression(clang::Parser::TypeCastState) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x653b679)
#22 0x00000000065becc9 clang::Parser::ParseExprStatement(clang::Parser::ParsedStmtContext) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x65becc9)
#23 0x00000000065b69e2 clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 24u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x65b69e2)
#24 0x00000000065b790d clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 24u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x65b790d)
#25 0x00000000065bf3c3 clang::Parser::ParseCompoundStatementBody(bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x65bf3c3)
#26 0x00000000065bfb8a clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x65bfb8a)
#27 0x00000000064c9973 clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x64c9973)
#28 0x00000000064fef0d clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo&, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x64fef0d)
#29 0x00000000064bd58e clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x64bd58e)
#30 0x00000000064bdd49 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x64bdd49)
#31 0x00000000064c5613 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x64c5613)
#32 0x00000000064c652d clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x64c652d)
#33 0x00000000064b8a7a clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x64b8a7a)
#34 0x0000000004827f98 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4827f98)
#35 0x0000000004b158e5 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4b158e5)
#36 0x0000000004a9759e clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4a9759e)
#37 0x0000000004c05b4e clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4c05b4e)
#38 0x0000000000d51dcf cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xd51dcf)
#39 0x0000000000d4958a ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#40 0x000000000488d679 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#41 0x0000000003dd8b24 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3dd8b24)
#42 0x000000000488dc8f clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#43 0x00000000048506fd clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x48506fd)
#44 0x000000000485178e clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x485178e)
#45 0x0000000004858e65 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4858e65)
#46 0x0000000000d4ebc8 clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xd4ebc8)
#47 0x0000000000c15884 main (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xc15884)
#48 0x00007bedbac29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#49 0x00007bedbac29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#50 0x0000000000d49035 _start (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xd49035)
clang++: error: clang frontend command failed with exit code 134 (use -v to see invocation)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzkW19z46iy_zTKC2WXBPr7kAeNk-xm72xN7jh177y5EEI2O7LQAso6--lPAbIlFNtJ9sRzdutMZRJZ0M2vf900DZKxlGzdUHrtRZ-86OYKd2rDxfXXTm4CHyJ0VfDy-fonTiUoMPkOFAekxs16FiQeysFGqVZ6KPfgnQfv1rwseK3mXKw9ePenB-8eHv98KPCv4W-en3t-ft-0nQKKSqVlzC0v9u0P8eAn_ePnUomOKFBgSYGX6Dug_wBT1igPLoD5k5nW5EZrSW489MlqVHTb1lhRDy1IjaX00O2gtKSCPdESaPDOAAB0kjVrc1ODQ7m9Mq2mZy-60h9W_n64rL_twdQgQvm0I0xDqDHr3ycgs0aBLWYNsFpMq4W1144W2mR0q3sE6KCu12AV7pm0OpdK--um27bnuDbO7D-hHHjwTnCuPHhX10_bWSv4b5Toj32_u5oVHrxb0i3u_9xQUi--fZuTVo8ThBCZwHjirLSRYsk0EubqhlasoffNhgqmWLNe8Mb6hgsPpmMR3glCP3OCFeONNnnUuPj2bSSoQXgwN4TkIJeSCi0DvNgf9Zp56HZNVT80Ld2RjXNg7MEYeDCYiJWcyscNk3ogLAygn_ETzT_x8vk1WS1VU7UPES_2QYVZTcu55-cPn2_z5S2QXbFlCmBQdGsgaMuF0lNtMr2Y2nTFnPBt75-XbmJSdlR68A7gpgSsIXVXUqA2FBCB5cbMYSUwoZrOVtBWcEKlpCWQhm19W0tiKTlhWNESiK4BkgjWqvkhqspDVPlzz88eBF8LvAVYrLstbZTsQ4m3JnT4tmU1FTO6a2suqNiH0wzvHSVnSnTNdw_eFawZok1HJZityz-wqGYhmK3BjGu9uG219k61nZpLMNtqFsBstkvjGZbbmXxuFN556IY1itZgVjV89kRFwSXV7WC2BLPZmpCZ4rwmG8waD92cxas7ywa3csMVmFWE11zMSobXDZeKEWnHMBw7tz206Ik1SSjQbDn39JTxUA71L0A6IWijQIuFpAIo_p3qlJDoWQ4Tz8_hMXmkf2lxLaZTWNU1xIS_zt1aXqcWqwCdVcAaoI3nXVMCqbCi2pk2JyV93oKJzU_Ag8gH_s7f_0M0i4o4BSYuzRSVz9JePAjWKBM4jzb00qGTwH-suFSC4q2ZQENq16N-SAR58JO_6-EN4IMJeJRU4THwi5ripmu_NEu2bnDtwbRrzJJZgprrIS4BVYMZoEIHalmmcZqChY61r5TwJyqeLbafcVPWesS059Dps-CNojvVJ2rf_Lf6Ua8_KWhZYBLCCPq9UTbd79J4FYezmjXdbrZuOttA5pLPYwPZiAyAQ1dhFmcVAa3aCIrL1XdW1-_TbuQH7dEUbpjEYC0NBe-FHSbxoDh2FcM0qRDAhc7F71JrBAe1yQu1QfFuhUExKExdhSijWfw-hUZkUJiNAyzOQt9Pk__E4v3RM6k3pa-oIAp819CSJCGypcow8_fZcyVo5aGFae1XbpMuPZQTXNd6JV1VjS0yXxL1Kxbf73pNX2lFBW2IqQDeytFe-MDOAhSc17bEMSVBUuNtUWKTkvfwYLpPShrK7a4Vk_muWXBSX1KmVRAFjrt1qr7dbXAnbaFj04rN113z_0xtll1VMcJon9eXrc3rZ417K8UfHwe9jUMcwEkcYAKr4wF_QT9-fLQbOwYrkWNlgcMYVeCBioqL7Wj-3TdMMVyzP3v46ZQIuy6P7h4kaHnbKKaeAdHqznQ0qv-HNaXTc4iIXzuFi5rmQuDnryYoRlp0GGvqdGycUb-kv3faO_sgpq0zmGV9dDn8fasvp412lmkUR2ZZOGG_QAF-K_jeSf8kX_xvh-vH55ZeKJNb_obYjhx2ceFH9MSS9aljdbn49k2DO0S9NWPMrm62_r1vKt7P1Dfms7_G2EuNl0oMlp6BvNgNTb8qwhOb9ZyoL83r5H1p8e8dfVDCNf0QE2-w_Z_DpuVrYDNx2IwimEbRGNmD2c2Nro_xSaV8kXz1krFsKRnN04-3xuIdrElda1BUhfi8NVietGDcWfczn3XqeZmFp-lqLGrYwlLXGoq-FL1IwrGWD7xkE15i7NbIH8_L34oMbe6BDOhPySiC7CwZuTlm3tLmTZRMTLyIPUWQDfYEE3uKODlvz9_ECo1zsMKtaqOCEvK6Fcv9Oc9pQ8x1uVRb1Z8hXMQYA3cwBk2MiTMKzxpzMOSLGJ3S5pWiIldKsKJTVDpnT8struv_o2bz6m7j1Fb1FQAMO7PWnEtPR_g5uzRNSwsrPwZ5dLRpj0v4QLM8-CCc-CDJ_PIv-ODvQvolCNOUDIRFE8IqRND5RaI_bj0Q1z9QuFTtYiENgOMp4CI9v9rvt7NTwJOy5USQO7FCuN4tXCiQtSGDmW6JFpIsS877Zdi1V0zvm47ledas90HOxVuC9bF_MKk3GKd2aWOpz1jRYeZ_ZlJdKIwtIQNdbg0YVrR6Zd5rHn4SvGtPsqTr2JfWDvwdn8RvzIwnWX7Z_025uNd3x8VX3Kyp3jlfinnD7cC8W2WGRRml9FXmv4hRuN43igr7oOLfX2Je9DjrzZwQKqVuYxXTdFyAL8PIgS_3EZRuLcPzJc9oWXJoOznLP5y1acT9GNbKcKit3GdfcUiiODifDm93NqjcRf0HMHWJXKetHbiAEy7iCJ7PdY-8_UyfaG2XuTecghySoznMOFLWjE6bednV9H7bcrHfNlxkfbRmDiSgyTRKcfKyDMiXjycPJN096CUiWEMaADuVaZjCpMpS5wkTL-lPtMnN9N6fHFHSKdrf2r-z8aEweyADTKceDIsgSqlzNHQn9LLXlEdwXgihxTAgdArAEGdJlFGXSDvmfSMVPpxPT7k8bdJF4rfHOVjh1Hch8aMidKzo8Q7GPB0KgPScsRdJQT2-Ab1TbvllFJSkAoQEK_vexmjzND4T3WCxLyIPx6HOPbgwjzYvY4RFOdiQuTaEWZRisKd9ETyavHB8G3i_beujBk2eS2gdfZnonIiWgj3RI885Q99NEmkZJ9lHPu21A_ehswgWfLvFTTmdxUe9J1Xfj7d6dKwJGJGjBGvW_XJhXXsQWK3IbhcE9kOBJSMrabr3FDqd9Y2VEpgpuW-eqMN1raeC3Yz37bpLPjlRtIQbkdeePP_CiyPOCKYvsRRw_L7NsVdVbMvXrlniitbPDpc_-hFyj_gQ8CGcBhdJnUfI_3XBoRmft1iouX86CpDLWuTHVXmSNeM1_GJl3FPppO6JoO5waot9pmvulDMjwz62SjBmD6E0KWaiIHE3fW8h5RdeyNOM_MKLz0yqEw98X-biQwS0mIn-3eN3kNiHyQ-hUpM1UBlNqExpHJ2CfTO6dgqEI5XBKRf8QCovUK0aegby4skaTgvSF9X7SmQP3qSSvE8Er6_QH117GGQDbqf680kQpWk4ep3-4wa2qoeBJy_iwazM3vnipBEZFGZThTT0wWqlZVZSYaFWI7PePAQNhyEif1qo-SgCVvnH-0krt0OP21AOqBB6VclteIGq3zQA0se_fUEe_MHUBtAd0-FUUhCgUGPsJAWzJ6A4kJQCNirms_GXHK7Ka1RmKMNX9DpIQpiEIcqSq811EoRVRmFGICqKMAsrRFBSoTAoEIS0IlfsGvow8hFEQYSyKJlTjClJKuKHEURJEHihT7eY1XMd-3Mu1lfmxfvrAME4QFc1LmgtzVdqIOwth150cyWuzfv6RbeWXujXTCo5qFBM1eZ7OFYiuvnHfJHhqhP19V__rkLP2tM1_FcAAAD__2bqOpY">