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

    <tr>
        <th>Summary</th>
        <td>
            [Clang] Consteval ListInitialization with consteval constructed parameters causes crashed.
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          poor-circle
      </td>
    </tr>
</table>

<pre>
    ```cpp
struct meta_string {
  consteval meta_string(){}
  consteval meta_string(const meta_string& data1,const meta_string& data2){}
};

void crashed_tests() {
  constexpr meta_string str_by_subobjects{
       meta_string{},
       meta_string{}};
}
```

Output:

```
clang++: /root/llvm-project/clang/lib/Sema/SemaExprCXX.cpp:1455: clang::ExprResult clang::Sema::BuildCXXTypeConstructExpr(clang::TypeSourceInfo*, clang::SourceLocation, clang::MultiExprArg, clang::SourceLocation, bool): Assertion `(!ListInitialization || (Exprs.size() == 1 && isa<InitListExpr>(Exprs[0]))) && "List initialization must have initializer list as expression."' 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 -S --gcc-toolchain=/opt/compiler-explorer/gcc-snapshot -fcolor-diagnostics -fno-crash-diagnostics -std=c++20 <source>
1.      <eof> parser at end of file
2.      <source>:16:22: parsing function body 'crashed_tests'
 #0 0x0000555718e43544 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x0000555718e412dc llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3fb02dc)
 #2 0x0000555718d7c588 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007fc66eacf420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #4 0x00007fc66e59c00b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
 #5 0x00007fc66e57b859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
 #6 0x00007fc66e57b729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
 #7 0x00007fc66e58cfd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #8 0x000055571b9f601f clang::Sema::BuildCXXTypeConstructExpr(clang::TypeSourceInfo*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6b6501f)
 #9 0x000055571b9a0da9 clang::TreeTransform<RemoveNestedImmediateInvocation(clang::Sema&, clang::Sema::ExpressionEvaluationContextRecord&, std::reverse_iterator<llvm::PointerIntPair<clang::ConstantExpr*, 1u, unsigned int, llvm::PointerLikeTypeTraits<clang::ConstantExpr*>, llvm::PointerIntPairInfo<clang::ConstantExpr*, 1u, llvm::PointerLikeTypeTraits<clang::ConstantExpr*>>>*>)::ComplexRemove>::TransformCXXFunctionalCastExpr(clang::CXXFunctionalCastExpr*) SemaExpr.cpp:0:0
#10 0x000055571b995903 clang::TreeTransform<RemoveNestedImmediateInvocation(clang::Sema&, clang::Sema::ExpressionEvaluationContextRecord&, std::reverse_iterator<llvm::PointerIntPair<clang::ConstantExpr*, 1u, unsigned int, llvm::PointerLikeTypeTraits<clang::ConstantExpr*>, llvm::PointerIntPairInfo<clang::ConstantExpr*, 1u, llvm::PointerLikeTypeTraits<clang::ConstantExpr*>>>*>)::ComplexRemove>::TransformInitializer(clang::Expr*, bool) SemaExpr.cpp:0:0
#11 0x000055571b995e88 clang::TreeTransform<RemoveNestedImmediateInvocation(clang::Sema&, clang::Sema::ExpressionEvaluationContextRecord&, std::reverse_iterator<llvm::PointerIntPair<clang::ConstantExpr*, 1u, unsigned int, llvm::PointerLikeTypeTraits<clang::ConstantExpr*>, llvm::PointerIntPairInfo<clang::ConstantExpr*, 1u, llvm::PointerLikeTypeTraits<clang::ConstantExpr*>>>*>)::ComplexRemove>::TransformExprs(clang::Expr* const*, unsigned int, bool, llvm::SmallVectorImpl<clang::Expr*>&, bool*) SemaExpr.cpp:0:0
#12 0x000055571b99702e clang::TreeTransform<RemoveNestedImmediateInvocation(clang::Sema&, clang::Sema::ExpressionEvaluationContextRecord&, std::reverse_iterator<llvm::PointerIntPair<clang::ConstantExpr*, 1u, unsigned int, llvm::PointerLikeTypeTraits<clang::ConstantExpr*>, llvm::PointerIntPairInfo<clang::ConstantExpr*, 1u, llvm::PointerLikeTypeTraits<clang::ConstantExpr*>>>*>)::ComplexRemove>::TransformCXXConstructExpr(clang::CXXConstructExpr*) SemaExpr.cpp:0:0
#13 0x000055571b930938 clang::Sema::PopExpressionEvaluationContext() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6a9f938)
#14 0x000055571b760ae0 clang::Sema::ActOnFinishFunctionBody(clang::Decl*, clang::Stmt*, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x68cfae0)
#15 0x000055571b4ed81d clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x665c81d)
#16 0x000055571b41da71 clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x658ca71)
#17 0x000055571b44a710 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x65b9710)
#18 0x000055571b412662 clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6581662)
#19 0x000055571b412ec0 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (.part.0) Parser.cpp:0:0
#20 0x000055571b41867b clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x658767b)
#21 0x000055571b41950a clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x658850a)
#22 0x000055571b40d8da clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x657c8da)
#23 0x000055571a173d18 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x52e2d18)
#24 0x0000555719a057f9 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4b747f9)
#25 0x000055571998c12e clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4afb12e)
#26 0x0000555719aeb363 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4c5a363)
#27 0x00005557162f9ca4 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x1468ca4)
#28 0x00005557162f5928 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#29 0x00005557197f81e9 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
#30 0x0000555718d7cd2a llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3eebd2a)
#31 0x00005557197f8a3f clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#32 0x00005557197c2089 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4931089)
#33 0x00005557197c2b0d 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+++0x4931b0d)
#34 0x00005557197cc1ec clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x493b1ec)
#35 0x00005557162f82ad clang_main(int, char**) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x14672ad)
#36 0x00007fc66e57d083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#37 0x00005557162f13fe _start (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x14603fe)
clang-16: error: clang frontend command failed with exit code 134 (use -v to see invocation)
Compiler returned: 134
```

See [Godbolt](https://godbolt.org/z/j5McMs5Tb)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWsly4zgS_Rr5gpCC-3LwQSXbPZ6omnKUHBN9U4AgaLGbIjgA6Lb76ycTJCWCWso1Y_el2iHLNJZE5sNDZgJEJvLX61nkdB_WNDPnZuYslZYt02THNd3Ac1k_kVn8qasjhIlaaf5Mq3GDmZfMvBRbxTffa2jK7bKI5FRTd-atzlZ6E_n44PdKdd_PoswJk1Rteb7RXGnVaXWs_EsjLevgzyZ73ag2E9lvnEHHQw_zM9an08FbfafBWL29zgPUY7W_trpp9cxfjgsnLVlFEYlP-PGXZObdSSE0_Kmq5928kQK1hn_7dndVmcH3mu9o_-cWTF79-usC59hfukEYopyuOYzsL7HBN67aSo9LjQTz9KktqxwkPL42fIUgIkWwE07ooQNWr0UrGb-vCzHzlgCUJdDUfRaM6lLUk8ovMHqJMpfy6bv9MiEqpASYsVSKSywnCBjOufu5VPq-LnVJq_JP2tXFK_gAdgkOoRaq_JMPBPFhsm6IC5UR8q1UYPUK-6McY6V_O3SchZ-cWXiDY5vP0GnmedialPawuxbKtvSZHyq4JBW2pIogFblS0HAB_WdeTApaVjxfdPP-8Pl2ub4lQMxdCe1J1j4RyRshNdGCbLVuFOLj3cHnqdTbNlswset5cUyPUqmWw6q4I7TOQR9WtTknesu7ZUMyyn7XkjKOAINi0JOBdjwnyuCPxdiTKiVYSTVUyLYmismy0b3Kaw1CSN7umj2lHahKH6R4knRHqHxqd7zWqieyaAxxxa4Bu-UcAKmE5HIg85wOk6vmwLn6d6jIyvrAdVwTZP6U_0FlMQ_gicwFyqXAdJBuFtdCkfkOsSDz-UsSgczdXL3Wmr7AtJe15hWZr6HuibG5Bl6xLYUhgBSX1MPGqqaN2gpN5gUTUDHPS_pUC6VLBkMWtZgbYO1ipXOQzTrVPQfYt-rhBZIZwFwEDIq5KKCMNFQCBoRqwgF8UZACdOlaen3LgwBY3RF8AZkAX-yJDq5oa2bYmIHHB3TiiZuMe2c283yHOC8O_IRhGLsJD_wwCMgDODZtZvYR6bEun2pa_QOoUCEUCXpes9ZT0lWp3tE45ncv253Idr2cEUNVs8jVq-oeVhWnddt8rTtpMEJbK3gEvlUCJx0XXfJO5IGP8-IXmQPK4Irea-tZ2uYxC5OErBC4b5yJZy5fpzgASKib1QacJQQcfRoQvx8iLlgUccqKAPiw2YBL0GDHBpZ5Z2fnz4G6myiYV2Xdvsyf6raraPRWcpovlFg4xhY3ACmWJYE1TJgyx8mIpKXib5DPUHJkJAc-dLQkh7bkOEvClNBMvEnzkWTPg46W5GgqOd7P-ptlxp4tM7ZlJqzIox-T6fvQxZKZjFmSpUXkuMVfHEIPK-hLq2lW8aWU9PUbB-exmoR4FIeh7G3B9b1XWZRFIcBj4Zfa-FEnp-lYuUfJOTidWhVCgpWrb3wH6-pfsEJ4fr_b8Rzj0H39vNc-mYKP4Xl1ekpu9-H3FvLU1kjoFyyuX5n3nY3Lxg6Sw5pWfFNqLimsUVDogP6DwFgi72v9QEtpg28mnNZ6mAQQ6rb4vfdsxnmMJ7MX97n8nSMnAIQSo-Ylqd3UntPI8OltWv2_WnSfXqN0aLZrKv7STWAXqsz89nMLK-OuD1O0WlF1YmmcadIFnj7LPXa0GHgcm2VpmDr-3yz7CVl2f0jC7UkcKTd4v8uUcqeU4pAe_E2pn49S3a7wFJm644ZevyleHcvGGq93tKr-DVs1Ie9hxPPROzr0f4Pv8yZEjR2P_03Un5CoED4v5J3HtW_glm9zy3dSPzlNhAfRXODCcBDzzvkmTQtQaJ9vosaBpXEcOZQ7pzVeMv21vivrUm2HrOMTbJ9t1G44q07k6HqnJ8HkvU2DzQtobpkWWqYFPE_cfKzVgzlHGD0PZsHOXnM8lHmrfUeS1kw03Czl97c0ChkYYlka2Za6OY3dN1l6wwtzDDd1Yw_dQQlaSzu3c-TTjmTmjxyWm_GNhRhc_aVen6Ft13OptcTDwn6NvTdisLMFQCzEYhuxAOqdi9YhFL9I0TZngVo3nB0bfIBwv7SPATEAlFmr8TTyKHhMtqOXyHcn5Deo4JjWfRSYWQpYWWAmE_p5UeR9F8yvckTCe_T43dHWD2HzXfiXDE9ssa4sSrT3I9jlgr0WIOkUEM6-zy5kCYxn4XJ2cf4gLFPOnIZl0VCp8dQsJZ2GJ4Oc50ysS6I4u2jd7Us3uyMr38Oij5jKGGwZT6XnToxNQ4deNPZRNJ8hZ6u6SDG28mtD_9PyBz1J1PaexZxQ3V7KHr-IvK04JMNCahOkPijEhEkCZlo42Flz4ORJfozDcv14Nh0e8vuPSgDCmIFKls5WNkbd2M9dKxtbiZz_wuulWW1Dfs4ZMLAv-pAsLPS4B4pYmlpZWEqdMC6sU787icGjzk-o-jFKBlkcgA6WklY-laYJc-2N06of9t4k5_j65RSi5636EC4HtMhAT8uQyEabZ35knX71Kh_sOb3XO7L3Q5xSwEIK-lkGWNlL5BUpowFhzN3s8EWdlxw2U-Oj7y2Vhx14f-ptlUHB6NXVO9vhBpCj08CyI5nYEaZQNKC_ch-Nq0gunggcGWVIlMvy-Vz4soJzGheJy1Nj92gPOrwg3EgDnant73QM20gGquAL4k1R2_68G7unyMoFluxonU_X7MkpOhR-bbpTXatwbS5U9GGim8D9OcFmw15eXLf7J6OqZMP9iw4kqzEWbPR-Y43VE3FgHHLenDcM9d3-2j5q6aA3XWZeXNFdhj44PmAFlvavKP8pspMTMnnFmscs9-hoLk69PuxqvrX1mha8erXwvDx3H_CulPMMNB4T236zixyjvvUW7OfjyCS_PEsGz0aOeU6SnkXOTB49CokDnJa3nnTEBuc2qReaLq1sZmTbu7r81HfBbItR_hSXzMl_FBcAXZ0HBWrNhZ0xKJdc754HTXf22B8nvhXHnix_DZoAloVmMEGTuZyd0_xm9GxlBidSgnOz8Bei-f4JSOpnLmcWfuEkcCce7dk4pCCD_satLD8spYhhYEuz6T2J3El8stngtQVwduB_jII_eHMiACHWKNMEzPULTjr5H2CkA9L3w3fdzaUmwqVE79vfXCRFn08DLTp6dJfnyB-l3hL-UuLazjlxgf54h0hxMn_Gi3OK4228Q5LbjzTkt0Ry3cqaI0Gx84XLm2uQNAs__SLyTFTaXAtMJtfyuqqFwDuNd3_C72_hF_ZFhY-4777i124UxT5sPrzwKr_289RP6ZUudcWvQfDKgBPekNX-Mu2Jq43G3sN1WzYc4wMUEIHojmsuFWEUEFDDDdnFVSur6__9CmGYxKF_tb32mENTv4h5lLksh7XDXRYkXpDGAc2igl1VNOOVQmNmnlfzP4gRgbcdw5ur8tpzPM91Hc-J_SQIF1kSu36UFmEWekUOMSFwYEtdVgvUA0G8ktdGpax9UlCJFynVoRJYhu96DHYon7Z6K-R1I4Scs1Kyil-Z4a-N-v8Fcsv1og">