create an MCStreamer and provide it to AsmParser.
authorChris Lattner <sabre@nondot.org>
Wed, 24 Jun 2009 00:52:40 +0000 (00:52 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 24 Jun 2009 00:52:40 +0000 (00:52 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74039 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llvm-mc/AsmParser.h
tools/llvm-mc/CMakeLists.txt
tools/llvm-mc/Makefile
tools/llvm-mc/llvm-mc.cpp

index c13334579b550c84296cfd49b15389717565fd49..9a2c6dac4d99d17b071dc40ca32db9a66e6f1a3c 100644 (file)
 
 namespace llvm {
 class MCInst;
+class MCStreamer;
   
 class AsmParser {
   AsmLexer Lexer;
+  MCStreamer &Out;
+  
   struct X86Operand;
   
 public:
-  AsmParser(SourceMgr &SM) : Lexer(SM) {}
+  AsmParser(SourceMgr &SM, MCStreamer &OutStr) : Lexer(SM), Out(OutStr) {}
   ~AsmParser() {}
   
   bool Run();
index 369d52237067327412987a3c77cad4f30a15500f..2dd878d6e4679173e3a952c52ebd14fc738e5159 100644 (file)
@@ -1,4 +1,4 @@
-set(LLVM_LINK_COMPONENTS support)
+set(LLVM_LINK_COMPONENTS support MC)
 
 add_llvm_tool(llvm-mc
   llvm-mc.cpp
index 7b4d94445656d61afdecee7288cb406172921729..3c327dac1e977e668c3f27e4f3dbf14d9d3a7ec2 100644 (file)
@@ -9,7 +9,7 @@
 
 LEVEL = ../..
 TOOLNAME = llvm-mc
-LINK_COMPONENTS := support
+LINK_COMPONENTS := support MC
 
 # This tool has no plugins, optimize startup time.
 TOOL_NO_EXPORTS = 1
index 52205c48d0fb7fc2bcffc2ea30747df60f5d4d0a..fe8af10fb8e90a7ad2913d9864d6701991fca8e3 100644 (file)
@@ -12,6 +12,9 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "llvm/MC/MCContext.h"
+#include "llvm/MC/MCStreamer.h"
+#include "llvm/ADT/OwningPtr.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/ManagedStatic.h"
 #include "llvm/Support/MemoryBuffer.h"
@@ -136,7 +139,10 @@ static int AssembleInput(const char *ProgName) {
   // it later.
   SrcMgr.setIncludeDirs(IncludeDirs);
   
-  AsmParser Parser(SrcMgr);
+  // FIXME: don't leak streamer, own.
+  MCContext Ctx;
+  OwningPtr<MCStreamer> Str(createAsmStreamer(Ctx, outs()));
+  AsmParser Parser(SrcMgr, *Str.get());
   return Parser.Run();
 }