summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/MC/MCAtomTest.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-10-16 18:26:16 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-10-16 18:26:16 +0000
commitbab2afbfbed646da705a12e9a74f113d1e628faa (patch)
tree549184008b239a1d280e6f37dc92e1f648a0ee49 /llvm/unittests/MC/MCAtomTest.cpp
parent62082b7e0b0b7a299524f6191ddbfd62ed6b17d8 (diff)
downloadbcm5719-llvm-bab2afbfbed646da705a12e9a74f113d1e628faa.tar.gz
bcm5719-llvm-bab2afbfbed646da705a12e9a74f113d1e628faa.zip
Fix MCDataAtom never calling remap when adding data.
This patch fixes a small mistake in MCDataAtom::addData() where it doesn't ever call remap(): - if (Data.size() > Begin - End - 1) + if (Data.size() > End + 1 - Begin) remap(Begin, End + 1); This is currently not visible because of another bug is the disassembler, so the patch includes a unit test. Patch by Stephen Checkoway. llvm-svn: 192823
Diffstat (limited to 'llvm/unittests/MC/MCAtomTest.cpp')
-rw-r--r--llvm/unittests/MC/MCAtomTest.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/llvm/unittests/MC/MCAtomTest.cpp b/llvm/unittests/MC/MCAtomTest.cpp
new file mode 100644
index 00000000000..17b056cd2de
--- /dev/null
+++ b/llvm/unittests/MC/MCAtomTest.cpp
@@ -0,0 +1,31 @@
+//===- llvm/unittest/MC/MCAtomTest.cpp - Instructions unit tests ----------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm/MC/MCAtom.h"
+#include "llvm/MC/MCModule.h"
+#include "gtest/gtest.h"
+
+namespace llvm {
+namespace {
+
+TEST(MCAtomTest, MCDataSize) {
+ MCModule M;
+ MCDataAtom *Atom = M.createDataAtom(0, 0);
+ EXPECT_EQ(uint64_t(0), Atom->getEndAddr());
+ Atom->addData(0);
+ EXPECT_EQ(uint64_t(0), Atom->getEndAddr());
+ Atom->addData(1);
+ EXPECT_EQ(uint64_t(1), Atom->getEndAddr());
+ Atom->addData(2);
+ EXPECT_EQ(uint64_t(2), Atom->getEndAddr());
+ EXPECT_EQ(size_t(3), Atom->getData().size());
+}
+
+} // end anonymous namespace
+} // end namespace llvm
OpenPOWER on IntegriCloud