<html>
<head>
<base href="http://llvm.org/bugs/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - iterator inalidation"
href="http://llvm.org/bugs/show_bug.cgi?id=16281">16281</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>iterator inalidation
</td>
</tr>
<tr>
<th>Product</th>
<td>tools
</td>
</tr>
<tr>
<th>Version</th>
<td>trunk
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>Windows NT
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>TableGen
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>eugeny.grishul@gmail.com
</td>
</tr>
<tr>
<th>CC</th>
<td>llvmbugs@cs.uiuc.edu
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr></table>
<p>
<div>
<pre>On ToT(r183626) Win32 debug build is broken, debug iterators asserts("vector
iterator not incrementable"). I found that 'RWI' is used (++) after
'SchedClasses' are resized with relocation
void CodeGenSchedModels::inferFromInstRWs(unsigned SCIdx) {
const RecVec &RWDefs = SchedClasses[SCIdx].InstRWs;
for (RecIter RWI = RWDefs.begin(), RWE = RWDefs.end(); RWI != RWE; ++RWI) {
...
inferFromRW(Writes, Reads, SCIdx, ProcIndices);
}
}
relocation appears here
static void inferFromTransitions(ArrayRef<PredTransition> LastTransitions,
unsigned FromClassIdx,
CodeGenSchedModels &SchedModels) {
...
}
Command line:
llvm-tblgen.exe -gen-instr-info -I E:/External/llvm/lib/Target/ARM -I
E:/External/llvm/lib/Target -I E:/External/llvm/include
E:/External/llvm/lib/Target/ARM/ARM.td -o
E:/External/llvmbin/lib/Target/ARM/ARMGenInstrInfo.inc.tmp
Stack trace:
<span class="quote">> msvcp110d.dll!std::_Debug_message(const wchar_t * message, const wchar_t * file, unsigned int line) Line 15 C++</span >
llvm-tblgen.exe!std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<llvm::Record
*> > >::operator++() Line 101 C++
llvm-tblgen.exe!llvm::CodeGenSchedModels::inferFromInstRWs(unsigned int
SCIdx) Line 894 C++
llvm-tblgen.exe!llvm::CodeGenSchedModels::inferSchedClasses() Line 857
C++
llvm-tblgen.exe!llvm::CodeGenSchedModels::CodeGenSchedModels(llvm::RecordKeeper
& RK, const llvm::CodeGenTarget & TGT) Line 135 C++
llvm-tblgen.exe!llvm::CodeGenTarget::getSchedModels() Line 259 C++
llvm-tblgen.exe!`anonymous
namespace'::InstrInfoEmitter::InstrInfoEmitter(llvm::RecordKeeper & R) Line 39
C++
llvm-tblgen.exe!llvm::EmitInstrInfo(llvm::RecordKeeper & RK,
llvm::raw_ostream & OS) Line 420 C++
llvm-tblgen.exe!`anonymous namespace'::LLVMTableGenMain(llvm::raw_ostream
& OS, llvm::RecordKeeper & Records) Line 106 C++
llvm-tblgen.exe!llvm::TableGenMain(char * argv0, bool (llvm::raw_ostream
&, llvm::RecordKeeper &) * MainFn) Line 117 C++
llvm-tblgen.exe!main(int argc, char * * argv) Line 181 C++</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>