aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/CodeGen/AsmPrinter/AsmPrinter.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
index 0a81bd7c2a..c2a89b2d7e 100644
--- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
@@ -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 {