[llvm-bugs] [Bug 50063] New: code using consteval: "clang/lib/CodeGen/Address.h:38: llvm::Value* clang::CodeGen::Address::getPointer() const: Assertion `isValid()' failed."

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Apr 21 08:56:53 PDT 2021


https://bugs.llvm.org/show_bug.cgi?id=50063

            Bug ID: 50063
           Summary: code using consteval: "clang/lib/CodeGen/Address.h:38:
                    llvm::Value* clang::CodeGen::Address::getPointer()
                    const: Assertion `isValid()' failed."
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: -New Bugs
          Assignee: unassignedclangbugs at nondot.org
          Reporter: stephan.bergmann.secondary at googlemail.com
                CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org,
                    neeilans at live.com, richard-llvm at metafoo.co.uk

At least on recent trunk:

> $ cat test.cc
> struct S {
>     consteval S() {}
>     union {
>         int a;
>         unsigned b = 0;
>     };
> };
> void f() { S(); }

> $ clang++ -std=c++20 -c test.cc
> test.cc:8:12: warning: expression result unused [-Wunused-value]
> void f() { S(); }
>            ^~~
> clang++: llvm-project/clang/lib/CodeGen/Address.h:38: llvm::Value* clang::CodeGen::Address::getPointer() const: Assertion `isValid()' failed.
> PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
> Stack dump:
> 0.    Program arguments: clang++ -std=c++20 -c test.cc
> 1.    <eof> parser at end of file
> 2.    test.cc:8:6: LLVM IR generation of declaration 'f'
> 3.    test.cc:8:6: Generating code for declaration 'f'
>  #0 0x0000000005fa321d llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) llvm-project/llvm/lib/Support/Unix/Signals.inc:569:3
>  #1 0x0000000005fa0ed4 llvm::sys::RunSignalHandlers() llvm-project/llvm/lib/Support/Signals.cpp:76:20
>  #2 0x0000000005f08938 HandleCrash llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:75:5
>  #3 0x0000000005f08938 CrashRecoverySignalHandler(int) llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:388:62
>  #4 0x00007f3888ea71e0 __restore_rt sigaction.c:0:0
>  #5 0x00007f388895f9d5 raise /usr/src/debug/glibc-2.32-37-g760e1d2878/signal/../sysdeps/unix/sysv/linux/raise.c:50:1
>  #6 0x00007f38889488a4 abort /usr/src/debug/glibc-2.32-37-g760e1d2878/stdlib/abort.c:81:7
>  #7 0x00007f3888948789 get_sysdep_segment_value /usr/src/debug/glibc-2.32-37-g760e1d2878/intl/loadmsgcat.c:509:8
>  #8 0x00007f3888948789 _nl_load_domain.cold /usr/src/debug/glibc-2.32-37-g760e1d2878/intl/loadmsgcat.c:970:34
>  #9 0x00007f3888958026 .annobin___GI___assert_fail.end assert.c:0:0
> #10 0x00000000063b16d3 (llvm/inst/bin/clang+++0x63b16d3)
> #11 0x00000000063bc1c7 clang::CharUnits::alignmentAtOffset(clang::CharUnits) const llvm-project/llvm/include/llvm/IR/DerivedTypes.h:653:41
> #12 0x00000000063bc1c7 clang::CodeGen::CGBuilderTy::CreateStructGEP(clang::CodeGen::Address, unsigned int, llvm::Twine const&) llvm-project/clang/lib/CodeGen/CGBuilder.h:197:65
> #13 0x00000000063db941 clang::CodeGen::CodeGenFunction::EmitAggregateStore(llvm::Value*, clang::CodeGen::Address, bool) llvm-project/clang/lib/CodeGen/CGCall.cpp:1303:59
> #14 0x00000000064e6911 Visit llvm-project/clang/lib/CodeGen/CGExprAgg.cpp:106:33
> #15 0x00000000064e6911 (anonymous namespace)::AggExprEmitter::VisitCastExpr(clang::CastExpr*) llvm-project/clang/lib/CodeGen/CGExprAgg.cpp:855:10
> #16 0x00000000064e24b8 Visit llvm-project/clang/lib/CodeGen/CGExprAgg.cpp:106:33
> #17 0x00000000064e24b8 clang::CodeGen::CodeGenFunction::EmitAggExpr(clang::Expr const*, clang::CodeGen::AggValueSlot) llvm-project/clang/lib/CodeGen/CGExprAgg.cpp:1992:54
> #18 0x000000000640e3d7 clang::CodeGen::AggValueSlot::asRValue() const llvm-project/clang/lib/CodeGen/CGValue.h:640:5
> #19 0x000000000640e3d7 clang::CodeGen::CodeGenFunction::EmitAnyExpr(clang::Expr const*, clang::CodeGen::AggValueSlot, bool) llvm-project/clang/lib/CodeGen/CGExpr.cpp:226:29
> #20 0x000000000642109b clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(clang::Expr const*) llvm-project/clang/lib/CodeGen/CGExpr.cpp:204:63
> #21 0x000000000642109b clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(clang::Expr const*) llvm-project/clang/lib/CodeGen/CGExpr.cpp:202:6
> #22 0x000000000646291b llvm::IRBuilderBase::GetInsertBlock() const llvm-project/llvm/include/llvm/IR/IRBuilder.h:178:47
> #23 0x000000000646291b clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) llvm-project/clang/lib/CodeGen/CGStmt.cpp:122:56
> #24 0x00000000064632d4 clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt const&, bool, clang::CodeGen::AggValueSlot) llvm-project/clang/lib/CodeGen/CGStmt.cpp:458:31
> #25 0x000000000643959b clang::CodeGen::CodeGenFunction::EmitFunctionBody(clang::Stmt const*) llvm-project/clang/lib/CodeGen/CodeGenFunction.cpp:1193:36
> #26 0x0000000006447103 clang::CodeGen::CodeGenModule::getLangOpts() const llvm-project/clang/lib/CodeGen/CodeGenModule.h:703:51
> #27 0x0000000006447103 clang::CodeGen::CodeGenFunction::getLangOpts() const llvm-project/clang/lib/CodeGen/CodeGenFunction.h:1925:67
> #28 0x0000000006447103 clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) llvm-project/clang/lib/CodeGen/CodeGenFunction.cpp:1371:19
> #29 0x00000000062e7fbc clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:4780:3
> #30 0x00000000062e4abb clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:3166:47
> #31 0x00000000062ec57a clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) (.part.0) llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:5884:1
> #32 0x0000000006a80621 (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) llvm-project/clang/lib/CodeGen/ModuleBuilder.cpp:169:67
> #33 0x0000000006a761d3 clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:217:7
> #34 0x0000000007b0d994 clang::ParseAST(clang::Sema&, bool, bool) llvm-project/clang/lib/Parse/ParseAST.cpp:162:17
> #35 0x00000000069a4a39 clang::FrontendAction::Execute() llvm-project/clang/lib/Frontend/FrontendAction.cpp:949:21
> #36 0x00000000068dca46 llvm::Error::setChecked(bool) llvm-project/llvm/include/llvm/Support/Error.h:305:22
> #37 0x00000000068dca46 llvm::Error::operator bool() llvm-project/llvm/include/llvm/Support/Error.h:236:15
> #38 0x00000000068dca46 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) llvm-project/clang/lib/Frontend/CompilerInstance.cpp:960:42
> #39 0x0000000006a5ac4b clang::ExecuteCompilerInvocation(clang::CompilerInstance*) llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:279:32
> #40 0x0000000003b0e8f4 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) llvm-project/clang/tools/driver/cc1_main.cpp:246:40
> #41 0x0000000003b07f9d ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) llvm-project/clang/tools/driver/driver.cpp:338:20
> #42 0x0000000006799495 operator() llvm-project/clang/lib/Driver/Job.cpp:404:32
> #43 0x0000000006799495 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) llvm-project/llvm/include/llvm/ADT/STLExtras.h:185:52
> #44 0x0000000005f08aa4 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:425:10
> #45 0x000000000679a0fb 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) llvm-project/clang/lib/Driver/Job.cpp:408:10
> #46 0x0000000006769542 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const llvm-project/clang/lib/Driver/Compilation.cpp:197:3
> #47 0x0000000006769c21 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const llvm-project/clang/lib/Driver/Compilation.cpp:249:5
> #48 0x0000000006773cf1 llvm::SmallVectorBase<unsigned int>::empty() const llvm-project/llvm/include/llvm/ADT/SmallVector.h:73:47
> #49 0x0000000006773cf1 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) llvm-project/clang/lib/Driver/Driver.cpp:1538:28
> #50 0x0000000003b0b6f6 main llvm-project/clang/tools/driver/driver.cpp:513:5
> #51 0x00007f388894a1e2 __libc_start_main /usr/src/debug/glibc-2.32-37-g760e1d2878/csu/../csu/libc-start.c:314:16
> #52 0x0000000003b0734e _start (llvm/inst/bin/clang+++0x3b0734e)
> clang-13: error: clang frontend command failed with exit code 134 (use -v to see invocation)
> clang version 13.0.0 (git at github.com:llvm/llvm-project 843d08ef68702d5572b0f16efeb9b71387168bfb)
> Target: x86_64-unknown-linux-gnu
> Thread model: posix
[...]

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20210421/dc85523e/attachment.html>


More information about the llvm-bugs mailing list