kimgr added a comment.

I can also confirm that `main` and my branch (containing 
https://reviews.llvm.org/D119477 and https://reviews.llvm.org/D119476) both 
assert on the same line:

  $ cat bug-53244.cc 
  struct A {       
      consteval A() {}
      A(const A&) = delete;
      consteval void f() {}
  };
  
  int main() {
      A{A{}}.f();
  }
  
  $ bin/clang -std=c++20 ../../bug-53244.cc
  clang-14: /home/kimgr/code/llvm-project/clang/lib/Sema/SemaExprCXX.cpp:1453: 
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: 
/home/kimgr/code/llvm-project/out/main/bin/clang-14 -cc1 -triple 
x86_64-unknown-linux-gnu -emit-obj -mrelax-all --mrelax-relocations 
-disable-free -clear-ast-before-backend -main-file-name bug-53244.cc 
-mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on 
-fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 
-tune-cpu generic -mllvm -treat-scalable-fixed-error-as-warning 
-debugger-tuning=gdb 
-fcoverage-compilation-dir=/home/kimgr/code/llvm-project/out/main -resource-dir 
/home/kimgr/code/llvm-project/out/main/lib/clang/15.0.0 -internal-isystem 
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9 -internal-isystem 
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9 
-internal-isystem 
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/backward 
-internal-isystem 
/home/kimgr/code/llvm-project/out/main/lib/clang/15.0.0/include 
-internal-isystem /usr/local/include -internal-isystem 
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include 
-internal-externc-isystem /usr/include/x86_64-linux-gnu 
-internal-externc-isystem /include -internal-externc-isystem /usr/include 
-std=c++20 -fdeprecated-macro 
-fdebug-compilation-dir=/home/kimgr/code/llvm-project/out/main -ferror-limit 19 
-fgnuc-version=4.2.1 -fno-implicit-modules -fcxx-exceptions -fexceptions 
-fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o 
/tmp/bug-53244-192e65.o -x c++ ../../bug-53244.cc
  1.      <eof> parser at end of file
  2.      ../../bug-53244.cc:7:12: parsing function body 'main'
   #0 0x000000000698e43a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) 
/home/kimgr/code/llvm-project/llvm/lib/Support/Unix/Signals.inc:565:11
   #1 0x000000000698e5eb PrintStackTraceSignalHandler(void*) 
/home/kimgr/code/llvm-project/llvm/lib/Support/Unix/Signals.inc:632:1
   #2 0x000000000698cc9a llvm::sys::RunSignalHandlers() 
/home/kimgr/code/llvm-project/llvm/lib/Support/Signals.cpp:97:5
   #3 0x000000000698ed15 SignalHandler(int) 
/home/kimgr/code/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:1
   #4 0x00007f8769c493c0 __restore_rt 
(/lib/x86_64-linux-gnu/libpthread.so.0+0x153c0)
   #5 0x00007f87696dd18b raise 
/build/glibc-eX1tMB/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
   #6 0x00007f87696bc859 abort 
/build/glibc-eX1tMB/glibc-2.31/stdlib/abort.c:81:7
   #7 0x00007f87696bc729 get_sysdep_segment_value 
/build/glibc-eX1tMB/glibc-2.31/intl/loadmsgcat.c:509:8
   #8 0x00007f87696bc729 _nl_load_domain 
/build/glibc-eX1tMB/glibc-2.31/intl/loadmsgcat.c:970:34
   #9 0x00007f87696cdf36 (/lib/x86_64-linux-gnu/libc.so.6+0x36f36)
  #10 0x000000000af7d719 
clang::Sema::BuildCXXTypeConstructExpr(clang::TypeSourceInfo*, 
clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, 
clang::SourceLocation, bool) 
/home/kimgr/code/llvm-project/clang/lib/Sema/SemaExprCXX.cpp:1454:39
  #11 0x000000000ade829d 
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>::RebuildCXXFunctionalCastExpr(clang::TypeSourceInfo*, 
clang::SourceLocation, clang::Expr*, clang::SourceLocation, bool) 
/home/kimgr/code/llvm-project/clang/lib/Sema/TreeTransform.h:3019:22
  #12 0x000000000adac3d5 
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*)
 /home/kimgr/code/llvm-project/clang/lib/Sema/TreeTransform.h:11728:23
  #13 0x000000000ada4a8f 
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>::TransformExpr(clang::Expr*) 
/home/kimgr/code/llvm-project/out/main/tools/clang/include/clang/AST/StmtNodes.inc:929:1
  #14 0x000000000adcd51c 
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*) 
/home/kimgr/code/llvm-project/clang/lib/Sema/TreeTransform.h:4047:29
  #15 0x000000000adae285 
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>::TransformInitListExpr(clang::InitListExpr*) 
/home/kimgr/code/llvm-project/clang/lib/Sema/TreeTransform.h:11246:7
  #16 0x000000000ada507e 
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>::TransformExpr(clang::Expr*) 
/home/kimgr/code/llvm-project/out/main/tools/clang/include/clang/AST/StmtNodes.inc:1147:1
  #17 0x000000000adac2d8 
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*)
 /home/kimgr/code/llvm-project/clang/lib/Sema/TreeTransform.h:11719:20
  #18 0x000000000ada4a8f 
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>::TransformExpr(clang::Expr*) 
/home/kimgr/code/llvm-project/out/main/tools/clang/include/clang/AST/StmtNodes.inc:929:1
  #19 0x000000000adafff2 
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>::TransformMaterializeTemporaryExpr(clang::MaterializeTemporaryExpr*)
 /home/kimgr/code/llvm-project/clang/lib/Sema/TreeTransform.h:13562:23
  #20 0x000000000ada5173 
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>::TransformExpr(clang::Expr*) 
/home/kimgr/code/llvm-project/out/main/tools/clang/include/clang/AST/StmtNodes.inc:1177:1
  #21 0x000000000adb0257 
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>::TransformMemberExpr(clang::MemberExpr*) 
/home/kimgr/code/llvm-project/clang/lib/Sema/TreeTransform.h:10927:34
  #22 0x000000000ada51d5 
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>::TransformExpr(clang::Expr*) 
/home/kimgr/code/llvm-project/out/main/tools/clang/include/clang/AST/StmtNodes.inc:1189:1
  #23 0x000000000adab9b2 
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>::TransformCallExpr(clang::CallExpr*) 
/home/kimgr/code/llvm-project/clang/lib/Sema/TreeTransform.h:10891:36
  #24 0x000000000adabef5 
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>::TransformCXXMemberCallExpr(clang::CXXMemberCallExpr*) 
/home/kimgr/code/llvm-project/clang/lib/Sema/TreeTransform.h:11590:23
  #25 0x000000000ada499a 
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>::TransformExpr(clang::Expr*) 
/home/kimgr/code/llvm-project/out/main/tools/clang/include/clang/AST/StmtNodes.inc:887:1
  #26 0x000000000adadce2 
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>::TransformExprWithCleanups(clang::ExprWithCleanups*) 
/home/kimgr/code/llvm-project/clang/lib/Sema/TreeTransform.h:12757:23
  #27 0x000000000ada4f58 
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>::TransformExpr(clang::Expr*) 
/home/kimgr/code/llvm-project/out/main/tools/clang/include/clang/AST/StmtNodes.inc:1107:1
  #28 0x000000000ada3933 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*> > >*>) 
/home/kimgr/code/llvm-project/clang/lib/Sema/SemaExpr.cpp:16835:32
  #29 0x000000000ad90435 HandleImmediateInvocations(clang::Sema&, 
clang::Sema::ExpressionEvaluationContextRecord&) 
/home/kimgr/code/llvm-project/clang/lib/Sema/SemaExpr.cpp:16864:23
  #30 0x000000000ad88cf4 clang::Sema::PopExpressionEvaluationContext() 
/home/kimgr/code/llvm-project/clang/lib/Sema/SemaExpr.cpp:16930:19
  #31 0x000000000a91baea ExitFunctionBodyRAII::~ExitFunctionBodyRAII() 
/home/kimgr/code/llvm-project/clang/lib/Sema/SemaDecl.cpp:14600:3
  #32 0x000000000a8f2f2b clang::Sema::ActOnFinishFunctionBody(clang::Decl*, 
clang::Stmt*, bool) 
/home/kimgr/code/llvm-project/clang/lib/Sema/SemaDecl.cpp:14983:3
  #33 0x000000000a8f1317 clang::Sema::ActOnFinishFunctionBody(clang::Decl*, 
clang::Stmt*) /home/kimgr/code/llvm-project/clang/lib/Sema/SemaDecl.cpp:14589:3
  #34 0x000000000a50505f 
clang::Parser::ParseFunctionStatementBody(clang::Decl*, 
clang::Parser::ParseScope&) 
/home/kimgr/code/llvm-project/clang/lib/Parse/ParseStmt.cpp:2379:18
  #35 0x000000000a4c71a0 
clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, 
clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) 
/home/kimgr/code/llvm-project/clang/lib/Parse/Parser.cpp:1378:3
  #36 0x000000000a577a20 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, 
clang::DeclaratorContext, clang::SourceLocation*, clang::Parser::ForRangeInit*) 
/home/kimgr/code/llvm-project/clang/lib/Parse/ParseDecl.cpp:2053:27
  #37 0x000000000a4c611f 
clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributesWithRange&,
 clang::ParsingDeclSpec&, clang::AccessSpecifier) 
/home/kimgr/code/llvm-project/clang/lib/Parse/Parser.cpp:1138:10
  #38 0x000000000a4c57d0 
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributesWithRange&,
 clang::ParsingDeclSpec*, clang::AccessSpecifier) 
/home/kimgr/code/llvm-project/clang/lib/Parse/Parser.cpp:1154:12
  #39 0x000000000a4c50cf 
clang::Parser::ParseExternalDeclaration(clang::ParsedAttributesWithRange&, 
clang::ParsingDeclSpec*) 
/home/kimgr/code/llvm-project/clang/lib/Parse/Parser.cpp:976:12
  #40 0x000000000a4c345b 
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, bool) 
/home/kimgr/code/llvm-project/clang/lib/Parse/Parser.cpp:720:12
  #41 0x000000000a4be6e4 clang::ParseAST(clang::Sema&, bool, bool) 
/home/kimgr/code/llvm-project/clang/lib/Parse/ParseAST.cpp:158:16
  #42 0x0000000007bee7bc clang::ASTFrontendAction::ExecuteAction() 
/home/kimgr/code/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1076:1
  #43 0x0000000007dc0d52 clang::CodeGenAction::ExecuteAction() 
/home/kimgr/code/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:1107:5
  #44 0x0000000007bee1bc clang::FrontendAction::Execute() 
/home/kimgr/code/llvm-project/clang/lib/Frontend/FrontendAction.cpp:971:7
  #45 0x0000000007b2762c 
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) 
/home/kimgr/code/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1036:23
  #46 0x0000000007daa037 
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) 
/home/kimgr/code/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:263:8
  #47 0x000000000499f23d cc1_main(llvm::ArrayRef<char const*>, char const*, 
void*) /home/kimgr/code/llvm-project/clang/tools/driver/cc1_main.cpp:248:13
  #48 0x000000000499278e ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) 
/home/kimgr/code/llvm-project/clang/tools/driver/driver.cpp:317:5
  #49 0x0000000004991821 main 
/home/kimgr/code/llvm-project/clang/tools/driver/driver.cpp:388:5
  #50 0x00007f87696be0b3 __libc_start_main 
/build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:342:3
  #51 0x000000000499107e _start 
(/home/kimgr/code/llvm-project/out/main/bin/clang-14+0x499107e)

So I would argue that these two patch sets are independent and solves different 
problems.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D119095/new/

https://reviews.llvm.org/D119095

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to