daltenty added a comment. In D159339#4642210 <https://reviews.llvm.org/D159339#4642210>, @v.g.vassilev wrote:
> In D159339#4642147 <https://reviews.llvm.org/D159339#4642147>, @daltenty > wrote: > >> FYI: I tried to reproduce this on `powerpc64le-linux-gnu` at `-02` and >> didn't see it at this point, though I get a whole lot of other uninitialized >> reads, so there's definitely some general problems in this space in the LLVM >> codebase > > Are these also present in llvm16? I do see a similar case in llvm16 yes: algrind --tool=memcheck --leak-check=full ./bin/clang-repl ==3583806== Memcheck, a memory error detector ==3583806== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==3583806== Using Valgrind-3.17.0 and LibVEX; rerun with -h for copyright info ==3583806== Command: ./bin/clang-repl ==3583806== clang-repl> #include <memory> ==3583806== Conditional jump or move depends on uninitialised value(s) ==3583806== at 0x28D08F4: operator== (llvm-project/llvm/include/llvm/Support/Alignment.h:301) ==3583806== by 0x28D08F4: llvm::DataLayout::operator==(llvm::DataLayout const&) const (llvm-project/llvm/lib/IR/DataLayout.cpp:549) ==3583806== by 0x2AA31BB: operator!= (llvm-project/llvm/include/llvm/IR/DataLayout.h:233) ==3583806== by 0x2AA31BB: llvm::orc::LLJIT::applyDataLayout(llvm::Module&) (llvm-project/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp:927) ==3583806== by 0x2AA009F: operator() (llvm-project/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp:754) ==3583806== by 0x2AA009F: withModuleDo<(lambda at /home/daltenty/llvm/dev/llvm-project/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp:754:28)> (llvm-project/llvm/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h:136) ==3583806== by 0x2AA009F: llvm::orc::LLJIT::addIRModule(llvm::IntrusiveRefCntPtr<llvm::orc::ResourceTracker>, llvm::orc::ThreadSafeModule) (llvm-project/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp:754) ==3583806== by 0x2AA0693: llvm::orc::LLJIT::addIRModule(llvm::orc::JITDylib&, llvm::orc::ThreadSafeModule) (llvm-project/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp:761) ==3583806== by 0x2AAB563: (anonymous namespace)::GenericLLVMIRPlatformSupport::setupJITDylib(llvm::orc::JITDylib&) (llvm-project/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp:253) ==3583806== by 0x2AA2B2F: GenericLLVMIRPlatformSupport (llvm-project/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp:200) ==3583806== by 0x2AA2B2F: make_unique<(anonymous namespace)::GenericLLVMIRPlatformSupport, llvm::orc::LLJIT &> (unique_ptr.h:1065) ==3583806== by 0x2AA2B2F: llvm::orc::setUpGenericLLVMIRPlatform(llvm::orc::LLJIT&) (llvm-project/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp:947) ==3583806== by 0x2AA2273: llvm::orc::LLJIT::LLJIT(llvm::orc::LLJITBuilderState&, llvm::Error&) (llvm-project/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp:911) ==3583806== by 0x26AE233: llvm::orc::LLJITBuilderSetters<llvm::orc::LLJIT, llvm::orc::LLJITBuilder, llvm::orc::LLJITBuilderState>::create() (llvm-project/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h:381) ==3583806== by 0x2F39D7F: clang::IncrementalExecutor::IncrementalExecutor(llvm::orc::ThreadSafeContext&, llvm::Error&, clang::TargetInfo const&) (llvm-project/clang/lib/Interpreter/IncrementalExecutor.cpp:40) ==3583806== by 0x2F33A47: make_unique<clang::IncrementalExecutor, llvm::orc::ThreadSafeContext &, llvm::Error &, const clang::TargetInfo &> (unique_ptr.h:1065) ==3583806== by 0x2F33A47: clang::Interpreter::Execute(clang::PartialTranslationUnit&) (llvm-project/clang/lib/Interpreter/Interpreter.cpp:223) ==3583806== by 0x26AE71B: clang::Interpreter::ParseAndExecute(llvm::StringRef) (llvm-project/clang/include/clang/Interpreter/Interpreter.h:68) ==3583806== by 0x26ADD6B: main (llvm-project/clang/tools/clang-repl/ClangRepl.cpp:127) ==3583806== This definitely seems to be point to `DataLayout.FunctionPtrAlign`. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D159339/new/ https://reviews.llvm.org/D159339 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits