- Notifications
You must be signed in to change notification settings - Fork 15.1k
Description
| 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
-
<eof> parser at end of file -
Per-file LLVM IR generation -
/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: