summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/CodeGenMapTable.cpp
diff options
context:
space:
mode:
authorVedant Kumar <vsk@apple.com>2016-12-01 19:38:50 +0000
committerVedant Kumar <vsk@apple.com>2016-12-01 19:38:50 +0000
commit47de8391c0d560e88e84382c9d5c2059e888353d (patch)
tree4938746c7b49ac6a3480b7952a959e789ec6341c /llvm/utils/TableGen/CodeGenMapTable.cpp
parent618d78ca40b81fb8ae196394c84a96fc80f77ee7 (diff)
downloadbcm5719-llvm-47de8391c0d560e88e84382c9d5c2059e888353d.tar.gz
bcm5719-llvm-47de8391c0d560e88e84382c9d5c2059e888353d.zip
[tablegen] Delete duplicates from a vector without skipping elements
Tablegen's -gen-instr-info pass has a bug in its emitEnums() routine. The function intends for values in a vector to be deduplicated, but it accidentally skips over elements after performing a deletion. I think there are smarter ways of doing this deduplication, but we can do that in a follow-up commit if there's interest. See the thread: [PATCH] TableGen InstrMapping Bug fix. Patch by Tyler Kenney! llvm-svn: 288408
Diffstat (limited to 'llvm/utils/TableGen/CodeGenMapTable.cpp')
-rw-r--r--llvm/utils/TableGen/CodeGenMapTable.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/CodeGenMapTable.cpp b/llvm/utils/TableGen/CodeGenMapTable.cpp
index 527f530da47..8032d7b3ee9 100644
--- a/llvm/utils/TableGen/CodeGenMapTable.cpp
+++ b/llvm/utils/TableGen/CodeGenMapTable.cpp
@@ -542,6 +542,7 @@ static void emitEnums(raw_ostream &OS, RecordKeeper &Records) {
for (unsigned j = i+1; j < FieldValues.size(); j++) {
if (CurVal == FieldValues[j]) {
FieldValues.erase(FieldValues.begin()+j);
+ --j;
}
}
}
OpenPOWER on IntegriCloud