Implement parsing support for the .comm directive.  Patch by
Kevin Enderby!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74944 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/MC/MCAsmStreamer.cpp b/lib/MC/MCAsmStreamer.cpp
index 7d94464..f4aeaf3 100644
--- a/lib/MC/MCAsmStreamer.cpp
+++ b/lib/MC/MCAsmStreamer.cpp
@@ -41,6 +41,9 @@
 
     virtual void EmitSymbolAttribute(MCSymbol *Symbol, SymbolAttr Attribute);
 
+    virtual void EmitCommonSymbol(MCSymbol *Symbol, unsigned Size,
+                                  unsigned Pow2Alignment);
+
     virtual void EmitBytes(const char *Data, unsigned Length);
 
     virtual void EmitValue(const MCValue &Value, unsigned Size);
@@ -142,6 +145,15 @@
   OS << ' ' << Symbol->getName() << '\n';
 }
 
+void MCAsmStreamer::EmitCommonSymbol(MCSymbol *Symbol, unsigned Size,
+                                     unsigned Pow2Alignment) {
+  OS << ".comm";
+  OS << ' ' << Symbol->getName() << ',' << Size;
+  if (Pow2Alignment != 0)
+    OS << ',' << Pow2Alignment;
+  OS << '\n';
+}
+
 void MCAsmStreamer::EmitBytes(const char *Data, unsigned Length) {
   assert(CurSection && "Cannot emit contents before setting section!");
   for (unsigned i = 0; i != Length; ++i)