[llvm-bugs] [Bug 30227] New: RelativeRel is used, but not initialized for AMDGPU
via llvm-bugs
llvm-bugs at lists.llvm.org
Wed Aug 31 13:26:57 PDT 2016
https://llvm.org/bugs/show_bug.cgi?id=30227
Bug ID: 30227
Summary: RelativeRel is used, but not initialized for AMDGPU
Product: lld
Version: unspecified
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: ELF
Assignee: unassignedbugs at nondot.org
Reporter: krasin at google.com
CC: llvm-bugs at lists.llvm.org
Classification: Unclassified
As of now, MemorySanitizer bots are red, because Target->RelativeRel is used
but not initialized for AMDGPU arch:
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/15968
==28645==WARNING: MemorySanitizer: use-of-uninitialized-value
#0 0x7b66c5 in
lld::elf::RelocationSection<llvm::object::ELFType<(llvm::support::endianness)1,
true>
>::addReloc(lld::elf::DynamicReloc<llvm::object::ELFType<(llvm::support::endianness)1,
true> > const&)
/mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/tools/lld/ELF/OutputSections.cpp:357:7
#1 0x9c38e4 in operator()
/mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/tools/lld/ELF/Relocations.cpp:532:25
#2 0x9c38e4 in
scanRelocs<llvm::object::ELFType<llvm::support::endianness::little, true>,
llvm::object::Elf_Rel_Impl<llvm::object::ELFType<llvm::support::endianness::little,
true>, true> >
/mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/tools/lld/ELF/Relocations.cpp:683
#3 0x9c38e4 in void
lld::elf::scanRelocations<llvm::object::ELFType<(llvm::support::endianness)1,
true>
>(lld::elf::InputSectionBase<llvm::object::ELFType<(llvm::support::endianness)1,
true> >&, llvm::object::ELFType<(llvm::support::endianness)1, true>::Shdr
const&)
/mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/tools/lld/ELF/Relocations.cpp:696
#4 0x96157c in operator()
/mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/libcxx_build_msan/include/c++/v1/functional:1897:12
#5 0x96157c in (anonymous
namespace)::Writer<llvm::object::ELFType<(llvm::support::endianness)1, true>
>::forEachRelSec(std::__1::function<void
(lld::elf::InputSectionBase<llvm::object::ELFType<(llvm::support::endianness)1,
true> >&,
llvm::object::Elf_Shdr_Impl<llvm::object::ELFType<(llvm::support::endianness)1,
true> > const&)>)
/mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/tools/lld/ELF/Writer.cpp:666
#6 0x938123 in finalizeSections
/mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/tools/lld/ELF/Writer.cpp:735:3
#7 0x938123 in (anonymous
namespace)::Writer<llvm::object::ELFType<(llvm::support::endianness)1, true>
>::run()
/mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/tools/lld/ELF/Writer.cpp:260
#8 0x93382d in void
lld::elf::writeResult<llvm::object::ELFType<(llvm::support::endianness)1, true>
>()
/mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/tools/lld/ELF/Writer.cpp:228:18
#9 0x632244 in void
lld::elf::LinkerDriver::link<llvm::object::ELFType<(llvm::support::endianness)1,
true> >(llvm::opt::InputArgList&)
/mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/tools/lld/ELF/Driver.cpp:645:3
#10 0x61e3ec in lld::elf::LinkerDriver::main(llvm::ArrayRef<char const*>)
/mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/tools/lld/ELF/Driver.cpp:308:5
#11 0x61ba32 in lld::elf::link(llvm::ArrayRef<char const*>,
llvm::raw_ostream&)
/mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/tools/lld/ELF/Driver.cpp:52:11
#12 0x54d8ee in main
/mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/tools/lld/tools/lld/lld.cpp:106:13
#13 0x7f96a4537f44 in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x21f44)
#14 0x4ca136 in _start
(/mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm_build_msan/bin/lld+0x4ca136)
SUMMARY: MemorySanitizer: use-of-uninitialized-value
/mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/tools/lld/ELF/OutputSections.cpp:357:7
in
lld::elf::RelocationSection<llvm::object::ELFType<(llvm::support::endianness)1,
true>
>::addReloc(lld::elf::DynamicReloc<llvm::object::ELFType<(llvm::support::endianness)1,
true> > const&)
The detected use was added in https://reviews.llvm.org/rL280210 but it's just
the CL that exposed the issue, not the one that created it. In fact, we have
more uses of RelativeRel in the code base, they just don't run for AMDGPU under
MemorySanitizer => they are not detected.
We should either don't use this field on AMDGPU, or initialize it to a sane
value.
--
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/20160831/d6109ba2/attachment-0001.html>
More information about the llvm-bugs
mailing list