[llvm-branch-commits] [llvm] release/19.x: [RemoveDIs] Fix spliceDebugInfo splice-to-end edge case (#105671) (PR #106691)

Danial Klimkin via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Fri Aug 30 04:41:45 PDT 2024


dklimkin wrote:

We are seeing ASAN errors past [43661a1214353ea1773a711f403f8d1118e9ca0f](https://github.com/llvm/llvm-project/commit/43661a1214353ea1773a711f403f8d1118e9ca0f):

AddressSanitizer: 120 byte(s) leaked in 2 allocation(s).
```
Indirect leak of 96 byte(s) in 1 object(s) allocated from:
    #0 0x55661863b59d in operator new(unsigned long) llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:86:3
    #1 0x7fe8882b642e in llvm::DbgVariableRecord::createUnresolvedDbgVariableRecord(llvm::DbgVariableRecord::LocationType, llvm::Metadata*, llvm::MDNode*, llvm::MDNode*, llvm::MDNode*, llvm::Metadata*, llvm::MDNode*, llvm::MDNode*) llvm-project/llvm/lib/IR/DebugProgramInstruction.cpp:174:10
    #2 0x7fe88c37fdc3 in llvm::LLParser::parseDebugRecord(llvm::DbgRecord*&, llvm::LLParser::PerFunctionState&) llvm-project/llvm/lib/AsmParser/LLParser.cpp:6832:8
    #3 0x7fe88c37ef4c in llvm::LLParser::parseBasicBlock(llvm::LLParser::PerFunctionState&) llvm-project/llvm/lib/AsmParser/LLParser.cpp:6673:11
    #4 0x7fe88c344e2b in llvm::LLParser::parseFunctionBody(llvm::Function&, unsigned int, llvm::ArrayRef<unsigned int>) llvm-project/llvm/lib/AsmParser/LLParser.cpp:6618:9
    #5 0x7fe88c33cbe3 in llvm::LLParser::parseDefine() llvm-project/llvm/lib/AsmParser/LLParser.cpp:762:10
    #6 0x7fe88c335623 in llvm::LLParser::parseTopLevelEntities() llvm-project/llvm/lib/AsmParser/LLParser.cpp:566:11
    #7 0x7fe88c334e42 in llvm::LLParser::Run(bool, llvm::function_ref<std::__u::optional<std::__u::basic_string<char, std::__u::char_traits<char>, std::__u::allocator<char>>> (llvm::StringRef, llvm::StringRef)>) llvm-project/llvm/lib/AsmParser/LLParser.cpp:94:10
    #8 0x7fe88c3c757e in parseAssemblyInto(llvm::MemoryBufferRef, llvm::Module*, llvm::ModuleSummaryIndex*, llvm::SMDiagnostic&, llvm::SlotMapping*, bool, llvm::function_ref<std::__u::optional<std::__u::basic_string<char, std::__u::char_traits<char>, std::__u::allocator<char>>> (llvm::StringRef, llvm::StringRef)>) llvm-project/llvm/lib/AsmParser/Parser.cpp:35:8
    #9 0x7fe88c3c914b in parseAssemblyInto llvm-project/llvm/lib/AsmParser/Parser.cpp:42:10
    #10 0x7fe88c3c914b in parseAssembly llvm-project/llvm/lib/AsmParser/Parser.cpp:53:7
    #11 0x7fe88c3c914b in llvm::parseAssemblyString(llvm::StringRef, llvm::SMDiagnostic&, llvm::LLVMContext&, llvm::SlotMapping*) llvm-project/llvm/lib/AsmParser/Parser.cpp:141:10
    #12 0x7fe89ea5fd0d in parseIR llvm-project/llvm/unittests/IR/BasicBlockDbgInfoTest.cpp:30:33
    
Indirect leak of 24 byte(s) in 1 object(s) allocated from:
    #0 0x55661863b59d in operator new(unsigned long) llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:86:3
    #1 0x7fe888182813 in llvm::BasicBlock::createMarker(llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void, true, llvm::BasicBlock>, false, false>) llvm-project/llvm/lib/IR/BasicBlock.cpp:71:8
    #2 0x7fe88818af8c in llvm::BasicBlock::spliceDebugInfoImpl(llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void, true, llvm::BasicBlock>, false, false>, llvm::BasicBlock*, llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void, true, llvm::BasicBlock>, false, false>, llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void, true, llvm::BasicBlock>, false, false>) llvm-project/llvm/lib/IR/BasicBlock.cpp:981:9
    #3 0x7fe88818a544 in llvm::BasicBlock::spliceDebugInfo(llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void, true, llvm::BasicBlock>, false, false>, llvm::BasicBlock*, llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void, true, llvm::BasicBlock>, false, false>, llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void, true, llvm::BasicBlock>, false, false>) llvm-project/llvm/lib/IR/BasicBlock.cpp:873:3
    #4 0x7fe888188da2 in llvm::BasicBlock::splice(llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void, true, llvm::BasicBlock>, false, false>, llvm::BasicBlock*, llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void, true, llvm::BasicBlock>, false, false>, llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void, true, llvm::BasicBlock>, false, false>) llvm-project/llvm/lib/IR/BasicBlock.cpp:1051:5
```


https://github.com/llvm/llvm-project/pull/106691


More information about the llvm-branch-commits mailing list