forked from OSchip/llvm-project
[NFC][AIX] Use assert instead of llvm_unreachable
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 llvm-svn: 368720
This commit is contained in:
parent
7185a7301e
commit
9bf01e53a3
|
@ -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.
|
||||
///
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -60,5 +60,5 @@ MCStreamer *llvm::createXCOFFStreamer(MCContext &Context,
|
|||
|
||||
void MCXCOFFStreamer::EmitXCOFFLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size,
|
||||
unsigned ByteAlign) {
|
||||
llvm_unreachable("Not implemented yet.");
|
||||
}
|
||||
report_fatal_error("Emission of local commons not implemented yet.");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue