The element passed to push_back is not copied before the vector reallocates.
The client needs to copy the element first before passing it to push_back.
No test case, will be tested by follow-up swift scheduler model change (it
segfaults without this change).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183459
91177308-0d34-0410-b5e6-
96231b3b80d8
unsigned OperIdx = RWSequences.size()-1;
// Make N-1 copies of this transition's last sequence.
for (unsigned i = 1, e = SelectedRWs.size(); i != e; ++i) {
- RWSequences.push_back(RWSequences[OperIdx]);
+ // Create a temporary copy the vector could reallocate.
+ SmallVector<unsigned, 4> Tmp = RWSequences[OperIdx];
+ RWSequences.push_back(Tmp);
}
// Push each of the N elements of the SelectedRWs onto a copy of the last
// sequence (split the current operand into N operands).