make SwitchToSection accept null sections for now.
authorChris Lattner <sabre@nondot.org>
Mon, 3 Aug 2009 18:04:42 +0000 (18:04 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 3 Aug 2009 18:04:42 +0000 (18:04 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77976 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/AsmPrinter.cpp

index 0a81bd7c2a82ff57b14822ab9705e310f2368064..c2a89b2d7e7ddd5b82b7d967e39a0c4a7c18c4a8 100644 (file)
@@ -132,9 +132,14 @@ void AsmPrinter::SwitchToDataSection(const char *NewSection,
 }
 
 /// SwitchToSection - Switch to the specified section of the executable if we
-/// are not already in it!
+/// are not already in it!  If "NS" is null, then this causes us to exit the
+/// current section and not reenter another one.  This is generally used for
+/// asmprinter hacks.
+///
+/// FIXME: Remove support for null sections.
+///
 void AsmPrinter::SwitchToSection(const MCSection *NS) {
-  const std::string &NewSection = NS->getName();
+  const std::string &NewSection = NS ? NS->getName() : "";
 
   // If we're already in this section, we're done.
   if (CurrentSection == NewSection) return;
@@ -165,7 +170,7 @@ void AsmPrinter::SwitchToSection(const MCSection *NS) {
     O << TAI->getDataSectionStartSuffix() << '\n';
   }
 
-  IsInTextSection = NS->getKind().isText();
+  IsInTextSection = NS ? NS->getKind().isText() : false;
 }
 
 void AsmPrinter::getAnalysisUsage(AnalysisUsage &AU) const {