diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-10-16 18:26:16 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-10-16 18:26:16 +0000 |
commit | bab2afbfbed646da705a12e9a74f113d1e628faa (patch) | |
tree | 549184008b239a1d280e6f37dc92e1f648a0ee49 /llvm/unittests/MC/MCAtomTest.cpp | |
parent | 62082b7e0b0b7a299524f6191ddbfd62ed6b17d8 (diff) | |
download | bcm5719-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.cpp | 31 |
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 |