Skip to content

LoopIndexSplit reads from freed memory #2063

@llvmbot

Description

@llvmbot
Bugzilla Link 1691
Resolution DUPLICATE
Resolved on Sep 20, 2007 17:16
Version unspecified
OS Linux
Reporter LLVM Bugzilla Contributor

Extended Description

Running test/Transforms/LoopIndexSplit/SaveLastValue-2007-08-17.ll
under valgrind shows:
Invalid read of size 4
at 0x82E067E: llvm::Instruction::getNext() (Instruction.h:231)
by 0x82E1A6C: llvm::SymbolTableListTraits<llvm::Instruction, llvm::BasicBlock>::getNext(llvm::Instruction*) (SymbolTableListTraits.h:52)
by 0x82F3EA8: llvm::ilist_iteratorllvm::Instruction::operator++() (ilist:141)
by 0x83BB36A: (anonymous namespace)::LoopIndexSplit::removeBlocks(llvm::BasicBlock*, llvm::Loop*, llvm::BasicBlock*) (LoopIndexSplit.cpp:930)
by 0x83BBF14: (anonymous namespace)::LoopIndexSplit::splitLoop((anonymous namespace)::LoopIndexSplit::SplitInfo&) (LoopIndexSplit.cpp:1351)
by 0x83BD79A: (anonymous namespace)::LoopIndexSplit::runOnLoop(llvm::Loop*, llvm::LPPassManager&) (LoopIndexSplit.cpp:272)
by 0x8493062: llvm::LPPassManager::runOnFunction(llvm::Function&) (LoopPass.cpp:225)
by 0x854EADB: llvm::FPPassManager::runOnFunction(llvm::Function&) (PassManager.cpp:1168)
by 0x854EC7D: llvm::FPPassManager::runOnModule(llvm::Module&) (PassManager.cpp:1188)
by 0x854E7B1: llvm::MPPassManager::runOnModule(llvm::Module&) (PassManager.cpp:1237)
by 0x854E969: llvm::PassManagerImpl::run(llvm::Module&) (PassManager.cpp:1310)
by 0x854E9BB: llvm::PassManager::run(llvm::Module&) (PassManager.cpp:1342)
Address 0x42df24c is 36 bytes inside a block of size 44 free'd
at 0x4022166: operator delete(void*) (vg_replace_malloc.c:336)
by 0x853A7F8: llvm::CallInst::~CallInst() (Instructions.cpp:192)
by 0x82EBB8C: llvm::iplist<llvm::Instruction, llvm::ilist_traitsllvm::Instruction >::erase(llvm::ilist_iteratorllvm::Instruction) (ilist:368)
by 0x852B9A8: llvm::Instruction::eraseFromParent() (Instruction.cpp:68)
by 0x83BB35C: (anonymous namespace)::LoopIndexSplit::removeBlocks(llvm::BasicBlock*, llvm::Loop*, llvm::BasicBlock*) (LoopIndexSplit.cpp:934)
by 0x83BBF14: (anonymous namespace)::LoopIndexSplit::splitLoop((anonymous namespace)::LoopIndexSplit::SplitInfo&) (LoopIndexSplit.cpp:1351)
by 0x83BD79A: (anonymous namespace)::LoopIndexSplit::runOnLoop(llvm::Loop*, llvm::LPPassManager&) (LoopIndexSplit.cpp:272)
by 0x8493062: llvm::LPPassManager::runOnFunction(llvm::Function&) (LoopPass.cpp:225)
by 0x854EADB: llvm::FPPassManager::runOnFunction(llvm::Function&) (PassManager.cpp:1168)
by 0x854EC7D: llvm::FPPassManager::runOnModule(llvm::Module&) (PassManager.cpp:1188)
by 0x854E7B1: llvm::MPPassManager::runOnModule(llvm::Module&) (PassManager.cpp:1237)
by 0x854E969: llvm::PassManagerImpl::run(llvm::Module&) (PassManager.cpp:1310)

Reproduce using

llvm-as < SaveLastValue-2007-08-17.ll | valgrind --tool=memcheck opt -loop-index-split -disable-output -stats

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugzillaIssues migrated from bugzilladuplicateResolved as duplicate

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions