1. Make MCSection an abstract class.
2. Move section switch printing to MCSection virtual method which takes a
   TAI.  This eliminates textual formatting stuff from TLOF.
3. Eliminate SwitchToSectionDirective, getSectionFlagsAsString, and 
   TLOFELF::AtIsCommentChar.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78510 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
index 68cd4a4..61577a5 100644
--- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
@@ -94,18 +94,7 @@
 
   if (NS == 0) return;
   
-  // If section is named we need to switch into it via special '.section'
-  // directive and also append funky flags. Otherwise - section name is just
-  // some magic assembler directive.
-  if (!NS->isDirective()) {
-    SmallString<32> FlagsStr;
-    getObjFileLowering().getSectionFlagsAsString(NS->getKind(), FlagsStr, *TAI);
-
-    O << TAI->getSwitchToSectionDirective()
-      << CurrentSection->getName() << FlagsStr.c_str() << '\n';
-  } else {
-    O << CurrentSection->getName() << '\n';
-  }
+  NS->PrintSwitchToSection(*TAI, O);
 }
 
 void AsmPrinter::getAnalysisUsage(AnalysisUsage &AU) const {