[llvm-dev] uninitialized values in Attributes.cpp

Sanjoy Das via llvm-dev llvm-dev at lists.llvm.org
Sun Nov 20 02:03:10 PST 2016


Hi John,

This is probably somewhat of a stretch, but since the problem does not
happen with a Debug build, could it be due to loop unswitching (or
optimizations like that) kicking in when building LLVM?  That is, due
to speculating the branch out of loops like

  val = *uninitialized_loc
  for (; false;) {
    if (val)
      foo();
    else
      bar();
  }

?

What compiler are you building with?

-- Sanjoy

On Sat, Nov 19, 2016 at 9:00 PM, regehr via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> I did a RelWithDebInfo + asserts build of LLVM just now and, when running
> "make check" under Valgrind, am seeing a lot of uses of uninitialized memory
> like the one below.  Anyone know offhand what's likely to be the root cause?
> Unfortunately a Debug build doesn't give these errors.  Thanks,
>
> John
>
>
> FAIL: LLVM :: Analysis/BasicAA/pr18573.ll (2093 of 18733)
> ******************** TEST 'LLVM :: Analysis/BasicAA/pr18573.ll' FAILED
> ********************
> Script:
> --
> /home/regehr/llvm/build-vg/./bin/opt
> /home/regehr/llvm/test/Analysis/BasicAA/pr18573.ll -O2 -S |
> /home/regehr/llvm/build-vg/./bin/FileCheck
> /home/regehr/llvm/test/Analysis/BasicAA/pr18573.ll
> --
> Exit Code: 123
>
> Command Output (stderr):
> --
> ==29299== Conditional jump or move depends on uninitialised value(s)
> ==29299==    at 0x13FCF12: hasAttribute (Attributes.cpp:421)
> ==29299==    by 0x13FCF12: hasAttribute (Attributes.cpp:186)
> ==29299==    by 0x13FCF12: operator() (Attributes.cpp:627)
> ==29299==    by 0x13FCF12: operator()<const std::pair<unsigned int,
> llvm::Attribute> *> (predefined_ops.h:234)
> ==29299==    by 0x13FCF12: __find_if<const std::pair<unsigned int,
> llvm::Attribute> *, __gnu_cxx::__ops::_Iter_pred<(lambda at
> ../lib/IR/Attributes.cpp:627:3)> > (stl_algo.h:140)
> ==29299==    by 0x13FCF12: __find_if<const std::pair<unsigned int,
> llvm::Attribute> *, __gnu_cxx::__ops::_Iter_pred<(lambda at
> ../lib/IR/Attributes.cpp:627:3)> > (stl_algo.h:161)
> ==29299==    by 0x13FCF12: find_if<const std::pair<unsigned int,
> llvm::Attribute> *, (lambda at ../lib/IR/Attributes.cpp:627:3)>
> (stl_algo.h:3815)
> ==29299==    by 0x13FCF12: none_of<const std::pair<unsigned int,
> llvm::Attribute> *, (lambda at ../lib/IR/Attributes.cpp:627:3)>
> (stl_algo.h:526)
> ==29299==    by 0x13FCF12: none_of<llvm::ArrayRef<std::pair<unsigned int,
> llvm::Attribute> > &, (lambda at ../lib/IR/Attributes.cpp:627:3)>
> (STLExtras.h:607)
> ==29299==    by 0x13FCF12: llvm::AttributeSet::get(llvm::LLVMContext&,
> llvm::ArrayRef<std::pair<unsigned int, llvm::Attribute> >)
> (Attributes.cpp:627)
> ==29299==    by 0x13FD62B: llvm::AttributeSet::get(llvm::LLVMContext&,
> unsigned int, llvm::ArrayRef<llvm::Attribute::AttrKind>)
> (Attributes.cpp:712)
> ==29299==    by 0x146F9AC:
> llvm::Intrinsic::getAttributes(llvm::LLVMContext&, llvm::Intrinsic::ID)
> (Intrinsics.gen:20104)
> ==29299==    by 0x146F3A0: llvm::Function::Function(llvm::FunctionType*,
> llvm::GlobalValue::LinkageTypes, llvm::Twine const&, llvm::Module*)
> (Function.cpp:277)
> ==29299==    by 0x1CD2B36: Create (Function.h:106)
> ==29299==    by 0x1CD2B36:
> llvm::LLParser::ParseFunctionHeader(llvm::Function*&, bool)
> (LLParser.cpp:4766)
> ==29299==    by 0x1CCE2C2: llvm::LLParser::ParseDeclare() (LLParser.cpp:444)
> ==29299==    by 0x1CCC15A: llvm::LLParser::ParseTopLevelEntities()
> (LLParser.cpp:276)
> ==29299==    by 0x1CCBFBF: llvm::LLParser::Run() (LLParser.cpp:74)
> ==29299==    by 0x1CC59D8: llvm::parseAssemblyInto(llvm::MemoryBufferRef,
> llvm::Module&, llvm::SMDiagnostic&, llvm::SlotMapping*) (Parser.cpp:31)
> ==29299==    by 0x1CC5C16: llvm::parseAssembly(llvm::MemoryBufferRef,
> llvm::SMDiagnostic&, llvm::LLVMContext&, llvm::SlotMapping*) (Parser.cpp:41)
> ==29299==    by 0x158C59E: llvm::parseIR(llvm::MemoryBufferRef,
> llvm::SMDiagnostic&, llvm::LLVMContext&) (IRReader.cpp:89)
> ==29299==    by 0x158CA61: llvm::parseIRFile(llvm::StringRef,
> llvm::SMDiagnostic&, llvm::LLVMContext&) (IRReader.cpp:102)
> ==29299==
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev



-- 
Sanjoy Das
http://playingwithpointers.com


More information about the llvm-dev mailing list