[llvm-bugs] [Bug 42665] New: r366422 crashes clang when building LLVM Support with libc++

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Jul 18 04:47:37 PDT 2019


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

            Bug ID: 42665
           Summary: r366422 crashes clang when building LLVM Support with
                    libc++
           Product: clang
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: -New Bugs
          Assignee: unassignedclangbugs at nondot.org
          Reporter: ibiryukov at google.com
                CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org,
                    neeilans at live.com, richard-llvm at metafoo.co.uk

Created attachment 22257
  --> https://bugs.llvm.org/attachment.cgi?id=22257&action=edit
reproducer

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_delete<clang::TemplateInstantiationCallback> >,
std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback,
std::default_delete<clang::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
0cadf7bb2e78b9276421a44c0e1ad3cb4520050b)
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:

********************

-- 
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/20190718/6b2419ae/attachment-0001.html>


More information about the llvm-bugs mailing list