Skip to content

r366422 crashes clang when building LLVM Support with libc++ #42010

@llvmbot

Description

@llvmbot
Bugzilla Link 42665
Resolution FIXED
Resolved on Jul 19, 2019 04:48
Version unspecified
OS Linux
Blocks #41819
Attachments reproducer
Reporter LLVM Bugzilla Contributor
CC @zmodem,@zygoloid,@sylvestre

Extended Description

See the attached file for a repro.
Here's the stacktrace too:

clang-9: /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CGExprCXX.cpp:98: clang::CodeGen::RValue clang::CodeGen::CodeGenFunction::EmitCXXDestructorCall(clang::GlobalDecl, const clang::CodeGen::CGCallee &, llvm::Value *, clang::QualType, llvm::Value *, clang::QualType, const clang::CallExpr *): Assertion `!ThisTy.isNull()' failed.
Stack dump:
0. Program arguments: /usr/local/google/home/ibiryukov/projects/llvm/build-rel/bin/clang-9 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -disable-free -main-file-name BinaryStreamRef.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -ffunction-sections -fdata-sections -coverage-notes-file /usr/local/google/home/ibiryukov/projects/llvm/build-stage2-from-rel/lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamRef.cpp.gcno -nostdinc++ -resource-dir /usr/local/google/home/ibiryukov/projects/llvm/build-rel/lib/clang/9.0.0 -dependency-file lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamRef.cpp.o.d -sys-header-deps -MT lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamRef.cpp.o -D GTEST_HAS_RTTI=0 -D _DEBUG -D _GNU_SOURCE -D __STDC_CONSTANT_MACROS -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -I lib/Support -I /usr/local/google/home/ibiryukov/projects/llvm/llvm/lib/Support -I /usr/include/libxml2 -I include -I /usr/local/google/home/ibiryukov/projects/llvm/llvm/include -I /usr/lib/libcxx-google/include/c++/v1/ -U NDEBUG -internal-isystem /usr/local/include -internal-isystem /usr/local/google/home/ibiryukov/projects/llvm/build-rel/lib/clang/9.0.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O3 -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -pedantic -std=c++11 -fdeprecated-macro -fdebug-compilation-dir /usr/local/google/home/ibiryukov/projects/llvm/build-stage2-from-rel -ferror-limit 19 -fmessage-length 0 -fvisibility-inlines-hidden -fno-rtti -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops -vectorize-slp -faddrsig -o lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamRef.cpp.o -x c++ /usr/local/google/home/ibiryukov/projects/llvm/llvm/lib/Support/BinaryStreamRef.cpp

  1.  <eof> parser at end of file 
  2.  Per-file LLVM IR generation 
  3.  /usr/lib/libcxx-google/include/c++/v1/memory:3698:18: Generating code for declaration 'std::__1::__shared_ptr_emplace<(anonymous namespace)::ArrayRefImpl, std::__1::allocator<(anonymous namespace)::ArrayRefImpl> >::__on_zero_shared' 

#​0 0x00000000044ad294 PrintStackTrace /usr/local/google/home/ibiryukov/projects/llvm/llvm/lib/Support/Unix/Signals.inc:533:13
#​1 0x00000000044ad294 PrintStackTraceSignalHandler(void*) /usr/local/google/home/ibiryukov/projects/llvm/llvm/lib/Support/Unix/Signals.inc:593:0
#​2 0x00000000044aaf7e llvm::sys::RunSignalHandlers() /usr/local/google/home/ibiryukov/projects/llvm/llvm/lib/Support/Signals.cpp:69:18
#​3 0x00000000044ad6a8 SignalHandler(int) /usr/local/google/home/ibiryukov/projects/llvm/llvm/lib/Support/Unix/Signals.inc:385:1
#​4 0x00007f61992e93a0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x123a0)
#​5 0x00007f6197ddacfb raise (/lib/x86_64-linux-gnu/libc.so.6+0x36cfb)
#​6 0x00007f6197dc58ad abort (/lib/x86_64-linux-gnu/libc.so.6+0x218ad)
#​7 0x00007f6197dc577f (/lib/x86_64-linux-gnu/libc.so.6+0x2177f)
#​8 0x00007f6197dd3542 (/lib/x86_64-linux-gnu/libc.so.6+0x2f542)
#​9 0x00000000048d660e doit /usr/local/google/home/ibiryukov/projects/llvm/llvm/include/llvm/Support/Casting.h:105:5
#​10 0x00000000048d660e doit /usr/local/google/home/ibiryukov/projects/llvm/llvm/include/llvm/Support/Casting.h:132:0
#​11 0x00000000048d660e doit /usr/local/google/home/ibiryukov/projects/llvm/llvm/include/llvm/Support/Casting.h:122:0
#​12 0x00000000048d660e isa<clang::CXXRecordDecl, const clang::DeclContext > /usr/local/google/home/ibiryukov/projects/llvm/llvm/include/llvm/Support/Casting.h:142:0
#​13 0x00000000048d660e cast<clang::CXXRecordDecl, const clang::DeclContext> /usr/local/google/home/ibiryukov/projects/llvm/llvm/include/llvm/Support/Casting.h:264:0
#​14 0x00000000048d660e getParent /usr/local/google/home/ibiryukov/projects/llvm/clang/include/clang/AST/DeclCXX.h:2238:0
#​15 0x00000000048d660e clang::CodeGen::CodeGenFunction::EmitCXXDestructorCall(clang::GlobalDecl, clang::CodeGen::CGCallee const&, llvm::Value
, clang::QualType, llvm::Value*, clang::QualType, clang::CallExpr const*) /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CGExprCXX.cpp:99:0
#​16 0x00000000049a19da (anonymous namespace)::ItaniumCXXABI::EmitVirtualDestructorCall(clang::CodeGen::CodeGenFunction&, clang::CXXDestructorDecl const*, clang::CXXDtorType, clang::CodeGen::Address, llvm::PointerUnion<clang::CXXDeleteExpr const*, clang::CXXMemberCallExpr const*>) /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/ItaniumCXXABI.cpp:1765:3
#​17 0x00000000048d7e61 clang::CodeGen::CodeGenFunction::EmitCXXMemberOrOperatorMemberCallExpr(clang::CallExpr const*, clang::CXXMethodDecl const*, clang::CodeGen::ReturnValueSlot, bool, clang::NestedNameSpecifier*, bool, clang::Expr const*) /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CGExprCXX.cpp:0:23
#​18 0x00000000048d6b54 clang::CodeGen::CodeGenFunction::EmitCXXMemberCallExpr(clang::CXXMemberCallExpr const*, clang::CodeGen::ReturnValueSlot) /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CGExprCXX.cpp:204:1
#​19 0x000000000483cf65 clang::CodeGen::CodeGenFunction::EmitCallExpr(clang::CallExpr const*, clang::CodeGen::ReturnValueSlot) /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CGExpr.cpp:4491:12
#​20 0x00000000048ca744 (anonymous namespace)::ScalarExprEmitter::VisitCallExpr(clang::CallExpr const*) /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CGExprScalar.cpp:0:0
#​21 0x00000000048ba6c5 Visit /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CGExprScalar.cpp:424:52
#​22 0x00000000048ba6c5 clang::CodeGen::CodeGenFunction::EmitScalarExpr(clang::Expr const*, bool) /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CGExprScalar.cpp:4436:0
#​23 0x0000000004820e10 clang::CodeGen::CodeGenFunction::EmitAnyExpr(clang::Expr const*, clang::CodeGen::AggValueSlot, bool) /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CGExpr.cpp:199:24
#​24 0x0000000004820db9 clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(clang::Expr const*) /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CGExpr.cpp:188:1
#​25 0x000000000480bd9f GetInsertBlock /usr/local/google/home/ibiryukov/projects/llvm/llvm/include/llvm/IR/IRBuilder.h:126:47
#​26 0x000000000480bd9f clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CGStmt.cpp:114:0
#​27 0x0000000004816890 clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt const&, bool, clang::CodeGen::AggValueSlot) /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CGStmt.cpp:390:22
#​28 0x00000000047edc7d getLangOpts /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CodeGenFunction.h:1630:51
#​29 0x00000000047edc7d clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CodeGenFunction.cpp:1208:0
#​30 0x0000000004787623 clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CodeGenModule.cpp:4320:3
#​31 0x000000000477fd50 isVirtual /usr/local/google/home/ibiryukov/projects/llvm/clang/include/clang/AST/DeclCXX.h:2158:59
#​32 0x000000000477fd50 clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CodeGenModule.cpp:2751:0
#​33 0x0000000004774981 begin /usr/bin/../lib/gcc/x86_64-linux-gnu/8.0.1/../../../../include/c++/8.0.1/bits/stl_vector.h:708:45
#​34 0x0000000004774981 empty /usr/bin/../lib/gcc/x86_64-linux-gnu/8.0.1/../../../../include/c++/8.0.1/bits/stl_vector.h:895:0
#​35 0x0000000004774981 clang::CodeGen::CodeGenModule::EmitDeferred() /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CodeGenModule.cpp:2123:0
#​36 0x00000000047749a9 begin /usr/bin/../lib/gcc/x86_64-linux-gnu/8.0.1/../../../../include/c++/8.0.1/bits/stl_vector.h:708:45
#​37 0x00000000047749a9 empty /usr/bin/../lib/gcc/x86_64-linux-gnu/8.0.1/../../../../include/c++/8.0.1/bits/stl_vector.h:895:0
#​38 0x00000000047749a9 clang::CodeGen::CodeGenModule::EmitDeferred() /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CodeGenModule.cpp:2125:0
#​39 0x00000000047749a9 begin /usr/bin/../lib/gcc/x86_64-linux-gnu/8.0.1/../../../../include/c++/8.0.1/bits/stl_vector.h:708:45
#​40 0x00000000047749a9 empty /usr/bin/../lib/gcc/x86_64-linux-gnu/8.0.1/../../../../include/c++/8.0.1/bits/stl_vector.h:895:0
#​41 0x00000000047749a9 clang::CodeGen::CodeGenModule::EmitDeferred() /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CodeGenModule.cpp:2125:0
#​42 0x00000000047749a9 begin /usr/bin/../lib/gcc/x86_64-linux-gnu/8.0.1/../../../../include/c++/8.0.1/bits/stl_vector.h:708:45
#​43 0x00000000047749a9 empty /usr/bin/../lib/gcc/x86_64-linux-gnu/8.0.1/../../../../include/c++/8.0.1/bits/stl_vector.h:895:0
#​44 0x00000000047749a9 clang::CodeGen::CodeGenModule::EmitDeferred() /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CodeGenModule.cpp:2125:0
#​45 0x00000000047749a9 begin /usr/bin/../lib/gcc/x86_64-linux-gnu/8.0.1/../../../../include/c++/8.0.1/bits/stl_vector.h:708:45
#​46 0x00000000047749a9 empty /usr/bin/../lib/gcc/x86_64-linux-gnu/8.0.1/../../../../include/c++/8.0.1/bits/stl_vector.h:895:0
#​47 0x00000000047749a9 clang::CodeGen::CodeGenModule::EmitDeferred() /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CodeGenModule.cpp:2125:0
#​48 0x00000000047738e9 clang::CodeGen::CodeGenModule::Release() /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CodeGenModule.cpp:394:3
#​49 0x0000000004d03644 (anonymous namespace)::CodeGeneratorImpl::HandleTranslationUnit(clang::ASTContext&) /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/ModuleBuilder.cpp:260:11
#​50 0x0000000004d00dc6 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/CodeGen/CodeGenAction.cpp:240:13
#​51 0x0000000005a6b323 __normal_iterator /usr/bin/../lib/gcc/x86_64-linux-gnu/8.0.1/../../../../include/c++/8.0.1/bits/stl_iterator.h:781:20
#​52 0x0000000005a6b323 begin /usr/bin/../lib/gcc/x86_64-linux-gnu/8.0.1/../../../../include/c++/8.0.1/bits/stl_vector.h:699:0
#​53 0x0000000005a6b323 finalize<std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_deleteclang::TemplateInstantiationCallback >, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_deleteclang::TemplateInstantiationCallback > > > > /usr/local/google/home/ibiryukov/projects/llvm/clang/include/clang/Sema/TemplateInstCallback.h:54:0
#​54 0x0000000005a6b323 clang::ParseAST(clang::Sema&, bool, bool) /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/Parse/ParseAST.cpp:178:0
#​55 0x0000000004c5ef58 clang::FrontendAction::Execute() /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/Frontend/FrontendAction.cpp:938:10
#​56 0x0000000004bc9328 getPtr /usr/local/google/home/ibiryukov/projects/llvm/llvm/include/llvm/Support/Error.h:273:42
#​57 0x0000000004bc9328 operator bool /usr/local/google/home/ibiryukov/projects/llvm/llvm/include/llvm/Support/Error.h:236:0
#​58 0x0000000004bc9328 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/Frontend/CompilerInstance.cpp:944:0
#​59 0x0000000004cfb86d clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /usr/local/google/home/ibiryukov/projects/llvm/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:291:25
#​60 0x00000000028ea04a cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /usr/local/google/home/ibiryukov/projects/llvm/clang/tools/driver/cc1_main.cpp:249:15
#​61 0x00000000028e7d24 ExecuteCC1Tool /usr/local/google/home/ibiryukov/projects/llvm/clang/tools/driver/driver.cpp:309:12
#​62 0x00000000028e7d24 main /usr/local/google/home/ibiryukov/projects/llvm/clang/tools/driver/driver.cpp:381:0
#​63 0x00007f6197dc752b __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2352b)
#​64 0x00000000028e502a _start (/usr/local/google/home/ibiryukov/projects/llvm/build-rel/bin/clang-9+0x28e502a)
clang-9: error: unable to execute command: Aborted
clang-9: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 9.0.0 (https://github.com/llvm/llvm-project 0cadf7b)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/local/google/home/ibiryukov/projects/llvm/build-rel/bin
clang-9: note: diagnostic msg: PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
clang-9: note: diagnostic msg:


PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-9: note: diagnostic msg: /tmp/BinaryStreamRef-f5e741.cpp
clang-9: note: diagnostic msg: /tmp/BinaryStreamRef-f5e741.sh
clang-9: note: diagnostic msg:


Metadata

Metadata

Assignees

No one assigned

    Labels

    bugzillaIssues migrated from bugzillaclangClang issues not falling into any other category

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions