[LLVMbugs] [Bug 7367] Opt crash on attached .bc file when built by msvc 2010

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Jun 14 20:29:02 PDT 2010


http://llvm.org/bugs/show_bug.cgi?id=7367

Jack <eugeny.grishul at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|WORKSFORME                  |

--- Comment #5 from Jack <eugeny.grishul at gmail.com> 2010-06-14 22:29:01 CDT ---
Yes it's win-specific problem and I already mention that is no problem with
attached .bc file on macintosh.

MSVS 2010 have better STL iterators checking probably it's problem with
incorrect iterators usage somewhere.

Debugger breaks at assert in SuccIterator::operator=
  inline const Self &operator=(const Self &I) {
    assert(Term == I.Term &&"Cannot assign iterators to two different
blocks!");
    idx = I.idx;
    return *this;
  }

Stack trace:
llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>::operator=(const
llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> & I={...})  Line
113 + 0x29 bytes    C++
std::swap<llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>(llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> & _Left={...},
llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> & _Right={...}) 
Line 104    C++
std::_Swap_adl<llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>(llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> & _Left={...},
llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> & _Right={...}) 
Line 111 + 0xd bytes    C++
std::pair<llvm::BasicBlock *,llvm::SuccIterator<llvm::TerminatorInst
*,llvm::BasicBlock> >::swap(std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > &
_Right=(0x1ebce030 {InstList={...} Parent=0x1c841b78 }, {Term=0x1ebcd9d8 idx=1
}))  Line 210 + 0x13 bytes    C++
std::swap<llvm::BasicBlock *,llvm::SuccIterator<llvm::TerminatorInst
*,llvm::BasicBlock> >(std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > &
_Left=(0x1ebcd6f8 {InstList={...} Parent=0x1c841b78 }, {Term=0x1ebce11c idx=0
}), std::pair<llvm::BasicBlock *,llvm::SuccIterator<llvm::TerminatorInst
*,llvm::BasicBlock> > & _Right=(0x1ebce030 {InstList={...} Parent=0x1c841b78 },
{Term=0x1ebcd9d8 idx=1 }))  Line 282    C++
std::iter_swap<std::_Deque_unchecked_iterator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > >
>,std::_Deque_unchecked_iterator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > >
>(std::_Deque_unchecked_iterator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > >
_Left={...}, std::_Deque_unchecked_iterator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > >
_Right={...})  Line 2134 + 0x17 bytes    C++
std::_Reverse<std::_Deque_unchecked_iterator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > >
>(std::_Deque_unchecked_iterator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > >
_First={...}, std::_Deque_unchecked_iterator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > >
_Last={...}, std::bidirectional_iterator_tag __formal={...})  Line 3215 + 0x15
bytes    C++
std::reverse<std::_Deque_iterator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > >
>(std::_Deque_iterator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > >
_First=(0x1ebcd6f8 {InstList={...} Parent=0x1c841b78 }, {Term=0x1ebce11c idx=0
}), std::_Deque_iterator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > > _Last=end) 
Line 3222 + 0x79 bytes    C++
std::deque<std::pair<llvm::BasicBlock *,llvm::SuccIterator<llvm::TerminatorInst
*,llvm::BasicBlock> >,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > >
>::_Insert<std::_Deque_const_iterator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > >
>(std::_Deque_const_iterator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > >
_Where=(..., ..., std::_Deque_const_iterator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > > _First=end,
std::_Deque_const_iterator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > > _Last=end,
std::input_iterator_tag __formal={...})  Line 1397 + 0x70 bytes    C++
std::deque<std::pair<llvm::BasicBlock *,llvm::SuccIterator<llvm::TerminatorInst
*,llvm::BasicBlock> >,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > >
>::insert<std::_Deque_const_iterator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > >
>(std::_Deque_const_iterator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > >
_Where=(..., ..., std::_Deque_const_iterator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > >
_First=(0x1ebcd6f8 {InstList={...} Parent=0x1c841b78 }, {Term=0x1ebcd9d8 idx=1
}), std::_Deque_const_iterator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > > _Last=end) 
Line 1359    C++
std::deque<std::pair<llvm::BasicBlock *,llvm::SuccIterator<llvm::TerminatorInst
*,llvm::BasicBlock> >,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > >
>::deque<std::pair<llvm::BasicBlock *,llvm::SuccIterator<llvm::TerminatorInst
*,llvm::BasicBlock> >,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > >(const
std::deque<std::pair<llvm::BasicBlock *,llvm::SuccIterator<llvm::TerminatorInst
*,llvm::BasicBlock> >,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > > &
_Right=[3]((0x1ebcd6f8 {InstList={...} Parent=0x1c841b78 }, {Term=0x1ebcd9d8
idx=1 }),(0x1ebcd960 {InstList={...} Parent=0x1c841b78 }, {Term=0x1ebce1ac
idx=1 }),(0x1ebce030 {InstList={...} Parent=0x1c841b78 }, {Term=0x1ebce11c
idx=0 })))  Line 829 + 0x75 bytes    C++
std::stack<std::pair<llvm::BasicBlock *,llvm::SuccIterator<llvm::TerminatorInst
*,llvm::BasicBlock> >,std::deque<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > >
>::stack<std::pair<llvm::BasicBlock *,llvm::SuccIterator<llvm::TerminatorInst
*,llvm::BasicBlock> >,std::deque<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > > >(const
std::stack<std::pair<llvm::BasicBlock *,llvm::SuccIterator<llvm::TerminatorInst
*,llvm::BasicBlock> >,std::deque<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock>
>,std::allocator<std::pair<llvm::BasicBlock
*,llvm::SuccIterator<llvm::TerminatorInst *,llvm::BasicBlock> > > > > &
_Right=[3]((0x1ebcd6f8 {InstList={...} Parent=0x1c841b78 }, {Term=0x1ebcd9d8
idx=1 }),(0x1ebcd960 {InstList={...} Parent=0x1c841b78 }, {Term=0x1ebce1ac
idx=1 }),(0x1ebce030 {InstList={...} Parent=0x1c841b78 }, {Term=0x1ebce11c
idx=0 })))  Line 32    C++
llvm::po_iterator<llvm::BasicBlock *,llvm::SmallPtrSet<llvm::BasicBlock
*,8>,0,llvm::GraphTraits<llvm::BasicBlock *> >::po_iterator<llvm::BasicBlock
*,llvm::SmallPtrSet<llvm::BasicBlock *,8>,0,llvm::GraphTraits<llvm::BasicBlock
*> >(const llvm::po_iterator<llvm::BasicBlock
*,llvm::SmallPtrSet<llvm::BasicBlock *,8>,0,llvm::GraphTraits<llvm::BasicBlock
*> > & __that={...})  + 0x52 bytes    C++
std::copy<llvm::po_iterator<llvm::BasicBlock
*,llvm::SmallPtrSet<llvm::BasicBlock *,8>,0,llvm::GraphTraits<llvm::BasicBlock
*> >,std::back_insert_iterator<std::vector<llvm::BasicBlock
*,std::allocator<llvm::BasicBlock *> > > >(llvm::po_iterator<llvm::BasicBlock
*,llvm::SmallPtrSet<llvm::BasicBlock *,8>,0,llvm::GraphTraits<llvm::BasicBlock
*> > _First={...}, llvm::po_iterator<llvm::BasicBlock
*,llvm::SmallPtrSet<llvm::BasicBlock *,8>,0,llvm::GraphTraits<llvm::BasicBlock
*> > _Last={...}, std::back_insert_iterator<std::vector<llvm::BasicBlock
*,std::allocator<llvm::BasicBlock *> > > _Dest={...})  Line 2224 + 0x39 bytes  
 C++
llvm::ReversePostOrderTraversal<llvm::Function
*,llvm::GraphTraits<llvm::Function *> >::Initialize(llvm::BasicBlock *
BB=0x1ebcd6f8)  Line 217 + 0x60 bytes    C++
llvm::ReversePostOrderTraversal<llvm::Function
*,llvm::GraphTraits<llvm::Function *>
>::ReversePostOrderTraversal<llvm::Function *,llvm::GraphTraits<llvm::Function
*> >(llvm::Function * G=0x1c841b78)  Line 224    C++
`anonymous namespace'::Reassociate::BuildRankMap(llvm::Function & F={...}) 
Line 149 + 0xc bytes    C++
`anonymous namespace'::Reassociate::runOnFunction(llvm::Function & F={...}) 
Line 1064    C++
llvm::FPPassManager::runOnFunction(llvm::Function & F={...})  Line 1428 + 0x17
bytes    C++
`anonymous namespace'::CGPassManager::RunPassOnSCC(llvm::Pass * P=0x1f50d250,
llvm::CallGraphSCC & CurSCC={...}, llvm::CallGraph & CG={...}, bool &
CallGraphUpToDate=true, bool & DevirtualizedCall=false)  Line 145 + 0x10 bytes 
  C++
`anonymous namespace'::CGPassManager::RunAllPassesOnSCC(llvm::CallGraphSCC &
CurSCC={...}, llvm::CallGraph & CG={...}, bool & DevirtualizedCall=false)  Line
399 + 0x20 bytes    C++
`anonymous namespace'::CGPassManager::runOnModule(llvm::Module & M={...})  Line
454 + 0x1e bytes    C++
llvm::MPPassManager::runOnModule(llvm::Module & M={...})  Line 1502 + 0x17
bytes    C++
llvm::PassManagerImpl::run(llvm::Module & M={...})  Line 1583 + 0x1b bytes   
C++
llvm::PassManager::run(llvm::Module & M={...})  Line 1627    C++
 ...

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list