[llvm-bugs] [Bug 39766] New: build of llvm-7 fails with sanitizer=undefined

via llvm-bugs llvm-bugs at lists.llvm.org
Fri Nov 23 15:40:48 PST 2018


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

            Bug ID: 39766
           Summary: build of llvm-7 fails with sanitizer=undefined
           Product: Build scripts
           Version: 7.0
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: cmake
          Assignee: unassignedbugs at nondot.org
          Reporter: semi1 at posteo.de
                CC: llvm-bugs at lists.llvm.org

The build of llvm-7 fails if sanitizer=undefined is enabled.

I am not sure if this is an llvm bug, it could also be in the shared_ptr
implementation of libstdc++. 


cmake:
CC=/usr/bin/clang-7 CXX=/usr/bin/clang++-7 cmake -G "Ninja"
-DLLVM_TARGETS_TO_BUILD="X86"
-DLLVM_PARALLEL_LINK_JOBS=1-DCMAKE_BUILD_TYPE="Debug"
-DLLVM_USE_SANITIZER="Undefined" -DLLVM_CCACHE_BUILD=ON ../llvm


clang++-7 -v: 
clang version 7.0.0-3 (tags/RELEASE_700/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/8
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7.3.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/8
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.3.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/8
Candidate multilib: .;@m64
Selected multilib: .;@m64


libstdc++:
libstdc++.so.6.0.25


compile comand with failure and stacktrace: 
UBSAN_OPTIONS=print_stacktrace=1 ninja -v -j 1
[1/1403] cd /home/jr/src/llvm-build && /home/jr/src/llvm-build/bin/llvm-tblgen
-gen-dag-isel -I /home/jr/src/llvm/lib/Target/X86 -I /home/jr/src/llvm/include
-I /home/jr/src/llvm/lib/Target /home/jr/src/llvm/lib/Target/X86/X86.td -o
lib/Target/X86/X86GenDAGISel.inc.tmp -d lib/Target/X86/X86GenDAGISel.inc.d
FAILED: lib/Target/X86/X86GenDAGISel.inc.tmp 
cd /home/jr/src/llvm-build && /home/jr/src/llvm-build/bin/llvm-tblgen
-gen-dag-isel -I /home/jr/src/llvm/lib/Target/X86 -I /home/jr/src/llvm/include
-I /home/jr/src/llvm/lib/Target /home/jr/src/llvm/lib/Target/X86/X86.td -o
lib/Target/X86/X86GenDAGISel.inc.tmp -d lib/Target/X86/X86GenDAGISel.inc.d
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/shared_ptr_base.h:514:14:
runtime error: reference binding to address 0x000000989650 with insufficient
space for an object of type 'const std::type_info'
0x000000989650: note: pointer points here
 4e 50 27 00  00 44 65 66 61 75 6c 74  4d 6f 64 65 00 2f 68 6f  6d 65 2f 6a 72
2f 73 72  63 2f 6c 6c
              ^ 
    #0 0x4f4b56 in std::_Sp_make_shared_tag::_S_ti()
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/shared_ptr_base.h:514:7
    #1 0x4fc456 in std::__shared_ptr<llvm::TreePatternNode,
(__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<llvm::TreePatternNode>,
llvm::Record*&, std::vector<std::shared_ptr<llvm::TreePatternNode>,
std::allocator<std::shared_ptr<llvm::TreePatternNode> > >, unsigned
int&>(std::_Sp_make_shared_tag, std::allocator<llvm::TreePatternNode> const&,
llvm::Record*&, std::vector<std::shared_ptr<llvm::TreePatternNode>,
std::allocator<std::shared_ptr<llvm::TreePatternNode> > >&&, unsigned int&)
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/shared_ptr_base.h:1329:43
    #2 0x4fc223 in std::shared_ptr<llvm::TreePatternNode>
std::allocate_shared<llvm::TreePatternNode,
std::allocator<llvm::TreePatternNode>, llvm::Record*&,
std::vector<std::shared_ptr<llvm::TreePatternNode>,
std::allocator<std::shared_ptr<llvm::TreePatternNode> > >, unsigned
int&>(std::allocator<llvm::TreePatternNode> const&, llvm::Record*&,
std::vector<std::shared_ptr<llvm::TreePatternNode>,
std::allocator<std::shared_ptr<llvm::TreePatternNode> > >&&, unsigned int&)
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/shared_ptr.h:706:14
    #3 0x4d5328 in std::shared_ptr<llvm::TreePatternNode>
std::make_shared<llvm::TreePatternNode, llvm::Record*&,
std::vector<std::shared_ptr<llvm::TreePatternNode>,
std::allocator<std::shared_ptr<llvm::TreePatternNode> > >, unsigned
int&>(llvm::Record*&, std::vector<std::shared_ptr<llvm::TreePatternNode>,
std::allocator<std::shared_ptr<llvm::TreePatternNode> > >&&, unsigned int&)
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/shared_ptr.h:722:14
    #4 0x4beb9d in llvm::TreePattern::ParseTreePattern(llvm::Init*,
llvm::StringRef) /home/jr/src/llvm/utils/TableGen/CodeGenDAGPatterns.cpp:2746:7
    #5 0x4bda1c in llvm::TreePattern::ParseTreePattern(llvm::Init*,
llvm::StringRef)
/home/jr/src/llvm/utils/TableGen/CodeGenDAGPatterns.cpp:2586:14
    #6 0x4bde79 in llvm::TreePattern::ParseTreePattern(llvm::Init*,
llvm::StringRef) /home/jr/src/llvm/utils/TableGen/CodeGenDAGPatterns.cpp:2645:9
    #7 0x4bd87d in llvm::TreePattern::TreePattern(llvm::Record*,
llvm::ListInit*, bool, llvm::CodeGenDAGPatterns&)
/home/jr/src/llvm/utils/TableGen/CodeGenDAGPatterns.cpp:2539:21
    #8 0x4d6248 in std::enable_if<!(std::is_array<llvm::TreePattern>::value),
std::unique_ptr<llvm::TreePattern, std::default_delete<llvm::TreePattern> >
>::type llvm::make_unique<llvm::TreePattern, llvm::Record*&, llvm::ListInit*&,
bool, llvm::CodeGenDAGPatterns&>(llvm::Record*&, llvm::ListInit*&, bool&&,
llvm::CodeGenDAGPatterns&)
/home/jr/src/llvm/include/llvm/ADT/STLExtras.h:1070:33
    #9 0x4c181a in llvm::CodeGenDAGPatterns::ParsePatternFragments(bool)
/home/jr/src/llvm/utils/TableGen/CodeGenDAGPatterns.cpp:2990:35
    #10 0x4c103a in
llvm::CodeGenDAGPatterns::CodeGenDAGPatterns(llvm::RecordKeeper&,
std::function<void (llvm::TreePattern*)>)
/home/jr/src/llvm/utils/TableGen/CodeGenDAGPatterns.cpp:2903:3
    #11 0x5c8063 in (anonymous
namespace)::DAGISelEmitter::DAGISelEmitter(llvm::RecordKeeper&)
/home/jr/src/llvm/utils/TableGen/DAGISelEmitter.cpp:29:46
    #12 0x5c7fd6 in llvm::EmitDAGISel(llvm::RecordKeeper&, llvm::raw_ostream&)
/home/jr/src/llvm/utils/TableGen/DAGISelEmitter.cpp:187:3
    #13 0x77c98e in (anonymous namespace)::LLVMTableGenMain(llvm::raw_ostream&,
llvm::RecordKeeper&) /home/jr/src/llvm/utils/TableGen/TableGen.cpp:166:5
    #14 0x883231 in llvm::TableGenMain(char*, bool (*)(llvm::raw_ostream&,
llvm::RecordKeeper&)) /home/jr/src/llvm/lib/TableGen/Main.cpp:109:7
    #15 0x77c829 in main /home/jr/src/llvm/utils/TableGen/TableGen.cpp:247:10
    #16 0x7fa1e93bc09a in __libc_start_main
/build/glibc-B9XfQf/glibc-2.28/csu/../csu/libc-start.c:308:16
    #17 0x40c819 in _start (/home/jr/src/llvm-build/bin/llvm-tblgen+0x40c819)

ninja: build stopped: subcommand failed.

-- 
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/20181123/e119229f/attachment-0001.html>


More information about the llvm-bugs mailing list