[PATCH] D159126: [Clang] Add captures to the instantiation scope of lambda call operators

Aaron Ballman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Aug 29 11:19:37 PDT 2023


aaron.ballman added a subscriber: bogner.
aaron.ballman added a comment.

In D159126#4625911 <https://reviews.llvm.org/D159126#4625911>, @cor3ntin wrote:

> @beanz The changes to TreeTransform.h cause a lot of HLSL test failures similar to this one:
>
>   clang: /home/cor3ntin/dev/compilers/LLVM/llvm-project/clang/lib/AST/ExprClassification.cpp:57: Cl clang::Expr::ClassifyImpl(clang::ASTContext &, clang::SourceLocation *) const: Assertion `isLValue()' 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/cor3ntin/dev/compilers/LLVM/build-release/bin/clang -cc1 -internal-isystem /home/cor3ntin/dev/compilers/LLVM/build-release/lib/clang/18/include -nostdsysteminc -triple dxil-pc-shadermodel6.0-compute -emit-llvm -o - -O0 /home/cor3ntin/dev/compilers/LLVM/llvm-project/clang/test/CodeGenHLSL/builtins/RWBuffer-subscript.hlsl
>   1.      <eof> parser at end of file
>   2.      instantiating function definition 'hlsl::RWBuffer<int>::RWBuffer'
>    #0 0x00005562645f33c7 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x3d663c7)
>    #1 0x00005562645f0f9e llvm::sys::RunSignalHandlers() (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x3d63f9e)
>    #2 0x00005562645f3bba SignalHandler(int) Signals.cpp:0:0
>    #3 0x00007fc625c3c4b0 (/lib/x86_64-linux-gnu/libc.so.6+0x3c4b0)
>    #4 0x00007fc625c90ffb __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
>    #5 0x00007fc625c90ffb __pthread_kill_internal ./nptl/pthread_kill.c:78:10
>    #6 0x00007fc625c90ffb pthread_kill ./nptl/pthread_kill.c:89:10
>    #7 0x00007fc625c3c406 raise ./signal/../sysdeps/posix/raise.c:27:6
>    #8 0x00007fc625c2287c abort ./stdlib/abort.c:81:7
>    #9 0x00007fc625c2279b _nl_load_domain ./intl/loadmsgcat.c:1177:9
>   #10 0x00007fc625c33b86 (/lib/x86_64-linux-gnu/libc.so.6+0x33b86)
>   #11 0x0000556267a3f1a9 clang::Expr::ClassifyImpl(clang::ASTContext&, clang::SourceLocation*) const (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x71b21a9)
>   #12 0x0000556267a3fa37 clang::Expr::isModifiableLvalue(clang::ASTContext&, clang::SourceLocation*) const (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x71b2a37)
>   #13 0x0000556266ffbd1a CheckForModifiableLvalue(clang::Expr*, clang::SourceLocation, clang::Sema&) SemaExpr.cpp:0:0
>   #14 0x0000556266ffb4b4 clang::Sema::CheckAssignmentOperands(clang::Expr*, clang::ActionResult<clang::Expr*, true>&, clang::SourceLocation, clang::QualType, clang::BinaryOperatorKind) (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x676e4b4)
>   #15 0x0000556266fddd2e clang::Sema::CreateBuiltinBinOp(clang::SourceLocation, clang::BinaryOperatorKind, clang::Expr*, clang::Expr*) (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x6750d2e)
>   #16 0x0000556267572779 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformBinaryOperator(clang::BinaryOperator*) SemaTemplateInstantiate.cpp:0:0
>   #17 0x000055626756ceb5 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*, clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::StmtDiscardKind) SemaTemplateInstantiate.cpp:0:0
>   #18 0x000055626758c4ba clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*, bool) SemaTemplateInstantiate.cpp:0:0
>   #19 0x000055626756ce43 clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x6cdfe43)
>   #20 0x00005562675c6bab clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x6d39bab)
>   #21 0x00005562675c9cbe clang::Sema::PerformPendingInstantiations(bool) (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x6d3ccbe)
>   #22 0x0000556266bf08a5 clang::Sema::ActOnEndOfTranslationUnitFragment(clang::Sema::TUFragmentKind) (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x63638a5)
>   #23 0x0000556266bf1028 clang::Sema::ActOnEndOfTranslationUnit() (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x6364028)
>   #24 0x0000556266ab548c clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x622848c)
>   #25 0x0000556266ab007e clang::ParseAST(clang::Sema&, bool, bool) (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x622307e)
>   #26 0x000055626519ac60 clang::FrontendAction::Execute() (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x490dc60)
>   #27 0x000055626510c96f clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x487f96f)
>   #28 0x000055626527cc5b clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x49efc5b)
>   #29 0x000055626341cf64 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x2b8ff64)
>   #30 0x0000556263419e3d ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
>   #31 0x0000556263418b9e clang_main(int, char**, llvm::ToolContext const&) (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x2b8bb9e)
>   #32 0x00005562634298d1 main (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x2b9c8d1)
>   #33 0x00007fc625c23a90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
>   #34 0x00007fc625c23b49 call_init ./csu/../csu/libc-start.c:128:20
>   #35 0x00007fc625c23b49 __libc_start_main ./csu/../csu/libc-start.c:347:5
>   #36 0x0000556263416325 _start (/home/cor3ntin/dev/compilers/LLVM/build-release/bin/clang+0x2b89325)
>   FileCheck error: '<stdin>' is empty.
>   FileCheck command line:  /home/cor3ntin/dev/compilers/LLVM/build-release/bin/FileCheck /home/cor3ntin/dev/compilers/LLVM/llvm-project/clang/test/CodeGenHLSL/builtins/RWBuffer-subscript.hlsl
>
> any idea would be appreciated! Thanks

CC @bogner as well


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D159126



More information about the cfe-commits mailing list