]> granicus.if.org Git - llvm/commitdiff
[NFC][AIX] Use assert instead of llvm_unreachable
authorDavid Tenty <daltenty@ibm.com>
Tue, 13 Aug 2019 17:04:51 +0000 (17:04 +0000)
committerDavid Tenty <daltenty@ibm.com>
Tue, 13 Aug 2019 17:04:51 +0000 (17:04 +0000)
Addresses post-commit comments on https://reviews.llvm.org/D64825. Use
assert instead of llvm_unreachable to check if invalid csect types are being
generated. Use report_fatal_error on unimplemented XCOFF features.

Differential Revision: https://reviews.llvm.org/D64825

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368720 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/MC/MCStreamer.h
lib/MC/MCAsmStreamer.cpp
lib/MC/MCSectionXCOFF.cpp
lib/MC/MCXCOFFStreamer.cpp

index cd3795a55a3c12b29c94e8b7edc766f5a105cc8e..f20324f853a714034b32476db0808a4563fd206d 100644 (file)
@@ -544,7 +544,7 @@ public:
   /// \param ByteAlignment - The alignment of the symbol in bytes. Must be a power
   /// of 2.
   virtual void EmitXCOFFLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size,
-                             unsigned ByteAlignment);
+                                          unsigned ByteAlignment);
 
   /// Emit an ELF .size directive.
   ///
index 967ee8b3c5f1a6e035706cb4049036924f2a0042..81a57c67d3741a729fefadc597377082197dad37 100644 (file)
@@ -759,14 +759,14 @@ void MCAsmStreamer::EmitCOFFImgRel32(MCSymbol const *Symbol, int64_t Offset) {
   EmitEOL();
 }
 
-// We need an XCOFF specific version of this directive as the AIX syntax
+// We need an XCOFF-specific version of this directive as the AIX syntax
 // requires a QualName argument identifying the csect name and storage mapping
 // class to appear before the alignment if we are specifying it.
 void MCAsmStreamer::EmitXCOFFLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size,
                                                unsigned ByteAlignment) {
   assert(MAI->getLCOMMDirectiveAlignmentType() == LCOMM::Log2Alignment &&
-         "We only support writing log base-2 alignment format with XCOFF");
-  assert(isPowerOf2_32(ByteAlignment) && "alignment must be a power of 2");
+         "We only support writing log base-2 alignment format with XCOFF.");
+  assert(isPowerOf2_32(ByteAlignment) && "Alignment must be a power of 2.");
 
   OS << "\t.lcomm\t";
   Symbol->print(OS, MAI);
index a3f79c35e841483a98fd2fd03a3a08630585e985..d00a435b6250ca601260cfd9e9a998f591c95dc0 100644 (file)
@@ -29,12 +29,12 @@ void MCSectionXCOFF::PrintSwitchToSection(const MCAsmInfo &MAI, const Triple &T,
   }
 
   if (getKind().isBSSLocal() || getKind().isCommon()) {
-    if (getMappingClass() != XCOFF::XMC_RW &&
-        getMappingClass() != XCOFF::XMC_BS)
-      llvm_unreachable("Generated a storage-mapping class for a common/bss "
-                       "csect we don't understand how to switch to.");
-    if (getCSectType() != XCOFF::XTY_CM)
-      llvm_unreachable("wrong csect type for .bss csect");
+    assert((getMappingClass() == XCOFF::XMC_RW ||
+            getMappingClass() == XCOFF::XMC_BS) &&
+           "Generated a storage-mapping class for a common/bss csect we don't "
+           "understand how to switch to.");
+    assert(getCSectType() == XCOFF::XTY_CM &&
+           "wrong csect type for .bss csect");
     // Don't have to print a directive for switching to section for commons.
     // '.comm' and '.lcomm' directives for the variable will create the needed
     // csect.
index 7d526cc3c04a88b2505e7bc96c13a6002f239344..960791910c5992bee0d085367e83dee058f12d2e 100644 (file)
@@ -60,5 +60,5 @@ MCStreamer *llvm::createXCOFFStreamer(MCContext &Context,
 
 void MCXCOFFStreamer::EmitXCOFFLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size,
                                             unsigned ByteAlign) {
-  llvm_unreachable("Not implemented yet.");
-}
\ No newline at end of file
+  report_fatal_error("Emission of local commons not implemented yet.");
+}