summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/CodeGenSchedule.cpp
diff options
context:
space:
mode:
authorDan Gohman <dan433584@gmail.com>2013-03-27 18:44:56 +0000
committerDan Gohman <dan433584@gmail.com>2013-03-27 18:44:56 +0000
commit38a723830cee87aac2141e5c8435fce4d81406af (patch)
treea3a6e31a77b9fe9a4cf483b3a24633321f41095c /llvm/utils/TableGen/CodeGenSchedule.cpp
parentf1af79ab45be4f840a2db661894f32789cae13c9 (diff)
downloadbcm5719-llvm-38a723830cee87aac2141e5c8435fce4d81406af.tar.gz
bcm5719-llvm-38a723830cee87aac2141e5c8435fce4d81406af.zip
Avoid undefined behavior from passing a std::vector's own contents
in as an argument to push_back. llvm-svn: 178166
Diffstat (limited to 'llvm/utils/TableGen/CodeGenSchedule.cpp')
-rw-r--r--llvm/utils/TableGen/CodeGenSchedule.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/utils/TableGen/CodeGenSchedule.cpp b/llvm/utils/TableGen/CodeGenSchedule.cpp
index 818fce2048c..886c4c63944 100644
--- a/llvm/utils/TableGen/CodeGenSchedule.cpp
+++ b/llvm/utils/TableGen/CodeGenSchedule.cpp
@@ -1105,7 +1105,9 @@ void PredTransitions::getIntersectingVariants(
// Push another copy of the current transition for more variants.
Variant.TransVecIdx = TransVec.size();
IntersectingVariants.push_back(Variant);
- TransVec.push_back(TransVec[TransIdx]);
+
+ PredTransition Trans = TransVec[TransIdx];
+ TransVec.push_back(Trans);
}
}
}
OpenPOWER on IntegriCloud