From 691e6009bd37e25c7ec09a0c86158cc3d24e3319 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Wed, 24 Jun 2009 16:05:35 +0000 Subject: [PATCH] MCStreamer: Test printing values. llvm-svn: 74076 --- lib/MC/MCAsmStreamer.cpp | 2 +- unittests/MC/AsmStreamerTest.cpp | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/lib/MC/MCAsmStreamer.cpp b/lib/MC/MCAsmStreamer.cpp index d268fb75e8f..efc9e65fe2c 100644 --- a/lib/MC/MCAsmStreamer.cpp +++ b/lib/MC/MCAsmStreamer.cpp @@ -121,7 +121,7 @@ void MCAsmStreamer::EmitValue(const MCValue &Value, unsigned Size) { default: assert(0 && "Invalid size for machine code value!"); case 1: OS << ".byte"; break; - case 2: OS << ".hword"; break; + case 2: OS << ".short"; break; case 4: OS << ".long"; break; case 8: OS << ".quad"; break; } diff --git a/unittests/MC/AsmStreamerTest.cpp b/unittests/MC/AsmStreamerTest.cpp index 80cd4560859..d9733010743 100644 --- a/unittests/MC/AsmStreamerTest.cpp +++ b/unittests/MC/AsmStreamerTest.cpp @@ -10,6 +10,7 @@ #include "gtest/gtest.h" #include "llvm/MC/MCContext.h" #include "llvm/MC/MCStreamer.h" +#include "llvm/MC/MCValue.h" #include "llvm/Support/raw_ostream.h" using namespace llvm; @@ -49,4 +50,28 @@ TEST(AsmStreamer, Sections) { EXPECT_EQ(S.getString(), ".section foo\n"); } +TEST(AsmStreamer, Values) { + StringAsmStreamer S; + MCSection *Sec0 = S.getContext().GetSection("foo"); + MCSymbol *A = S.getContext().CreateSymbol(S.getContext().CreateAtom(Sec0), + "a"); + MCSymbol *B = S.getContext().CreateSymbol(S.getContext().CreateAtom(Sec0), + "b"); + S.getStreamer().SwitchSection(Sec0); + S.getStreamer().EmitLabel(A); + S.getStreamer().EmitLabel(B); + S.getStreamer().EmitValue(MCValue::get(A, B, 10), 1); + S.getStreamer().EmitValue(MCValue::get(A, B, 10), 2); + S.getStreamer().EmitValue(MCValue::get(A, B, 10), 4); + S.getStreamer().EmitValue(MCValue::get(A, B, 10), 8); + EXPECT_EQ(S.getString(), ".section foo\n\ +a:\n\ +b:\n\ +.byte a - b + 10\n\ +.short a - b + 10\n\ +.long a - b + 10\n\ +.quad a - b + 10\n\ +"); +} + }