1//===- XCOFFObjectFile.h - XCOFF object file implementation -----*- C++ -*-===// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7//===----------------------------------------------------------------------===// 9// This file declares the XCOFFObjectFile class. 11//===----------------------------------------------------------------------===// 13#ifndef LLVM_OBJECT_XCOFFOBJECTFILE_H 14#define LLVM_OBJECT_XCOFFOBJECTFILE_H 28classxcoff_symbol_iterator;
34// Unix time value, value of 0 indicates no timestamp. 35// Negative values are reserved. 48// Unix time value, value of 0 indicates no timestamp. 49// Negative values are reserved. 64returnstatic_cast<constT *
>(
this)->FlagAndTDataAlignment &
69returnstatic_cast<constT *
>(
this)->FlagAndTDataAlignment &
75returnstatic_cast<constT *
>(
this)->EntryPointAddr;
81AuxMagic;
///< If the value of the o_vstamp field is greater than 1, the 82 ///< o_mflags field is reserved for future use and it should 83 ///< contain 0. Otherwise, this field is not used. 85Version;
///< The valid values are 1 and 2. When the o_vstamp field is 2 86 ///< in an XCOFF32 file, the new interpretation of the n_type 87 ///< field in the symbol table entry is used. 107 ///< maximum stack size is used. 109 ///< maximum data size is used. 112 ///< program is being debugged, the memory image of 113 ///< this field may be modified by a debugger to 114 ///< insert a trap instruction. 116 ///< default value is 0 (system-selected page size). 118 ///< default value is 0 (system-selected page size). 120 ///< default value is 0 (system-selected page size). 160// The section flags definitions are the same in both 32- and 64-bit objects. 161// Least significant 3 bits are reserved. 164// The low order 16 bits of section flags denotes the section type. 165// The high order 16 bits of section flags denotes the section subtype. 166// For now, this is only used for DWARF sections. 176// Explicit extern template declarations. 271// Relocation table is after Symbol table. 272return NumberOfRelTabEnt == 0
304assert(Reason == 0 &&
"Get symbol table index of the function only when " 305"the e_reason field is 0.");
310assert(Reason != 0 &&
"Zero is not a valid trap exception reason code.");
320// Explicit extern template declarations. 353staticconstexpruint8_t SymbolAlignmentMask = 0xF8;
354staticconstexprsize_t SymbolAlignmentBitOffset = 3;
359// For getSectionOrLength(), 360// If the symbol type is XTY_SD or XTY_CM, the csect length. 361// If the symbol type is XTY_LD, the symbol table 362// index of the containing csect. 363// If the symbol type is XTY_ER, 0. 365return Entry32 ? getSectionOrLength32() : getSectionOrLength64();
369assert(Entry32 &&
"32-bit interface called on 64-bit object file.");
370return Entry32->SectionOrLength;
374assert(Entry64 &&
"64-bit interface called on 32-bit object file.");
375return (
static_cast<uint64_t>(Entry64->SectionOrLengthHighByte) << 32) |
376 Entry64->SectionOrLengthLowByte;
379#define GETVALUE(X) Entry32 ? Entry32->X : Entry64->X 392return Entry32 ?
reinterpret_cast<uintptr_t
>(Entry32)
393 :
reinterpret_cast<uintptr_t
>(Entry64);
397return (getSymbolAlignmentAndType() & SymbolAlignmentMask) >>
398 SymbolAlignmentBitOffset;
402return getSymbolAlignmentAndType() & SymbolTypeMask;
408assert(Entry32 &&
"32-bit interface called on 64-bit object file.");
409return Entry32->StabInfoIndex;
413assert(Entry32 &&
"32-bit interface called on 64-bit object file.");
414return Entry32->StabSectNum;
418assert(Entry64 &&
"64-bit interface called on 32-bit object file.");
419return Entry64->AuxType;
423returnGETVALUE(SymbolAlignmentAndType);
453};
// 32-bit XCOFF file only. 511// Packed field, see XR_* masks for details of packing. 520// Returns the number of bits being relocated. 534constvoid *FileHeader =
nullptr;
535constvoid *AuxiliaryHeader =
nullptr;
536constvoid *SectionHeaderTable =
nullptr;
538constvoid *SymbolTblPtr =
nullptr;
543template <
typename T>
constT *sectionHeaderTable()
const;
545size_t getFileHeaderSize()
const;
546size_t getSectionHeaderSize()
const;
550 uintptr_t getSectionHeaderTableAddress()
const;
551 uintptr_t getEndOfSymbolTableAddress()
const;
556// This returns a pointer to the start of the storage for the name field of 557// the 32-bit or 64-bit SectionHeader struct. This string is *not* necessarily 559constchar *getSectionNameInternal(
DataRefImpl Sec)
const;
561staticbool isReservedSectionNumber(int16_t SectionNumber);
563// Constructor and "create" factory function. The constructor is only a thin 564// wrapper around the base constructor. The "create" function fills out the 565// XCOFF-specific information and performs the error checking along the way. 570// Helper for parsing the StringTable. Returns an 'Error' if parsing failed 571// and an XCOFFStringTable if parsing succeeded. 575// Make a friend so it can call the private 'create' function. 579void checkSectionAddress(uintptr_t
Addr, uintptr_t TableAddr)
const;
583 std::numeric_limits<uint64_t>::max();
585// Interface inherited from base classes. 586void moveSymbolNext(
DataRefImpl &Symb)
const override;
603void moveSectionNext(
DataRefImpl &Sec)
const override;
611bool isSectionCompressed(
DataRefImpl Sec)
const override;
617bool isSectionVirtual(
DataRefImpl Sec)
const override;
621void moveRelocationNext(
DataRefImpl &Rel)
const override;
623 /// \returns the relocation offset with the base address of the containing 624 /// section as zero, or InvalidRelocOffset on errors (such as a relocation 625 /// that does not refer to an address in any section). 634uint8_t getBytesInAddress()
const override;
635StringRef getFileFormatName()
const override;
640bool isRelocatableObject()
const override;
642// Below here is the non-inherited interface. 656// File header related interfaces. 661 int32_t getTimeStamp()
const;
663// Symbol table offset and entry count are handled differently between 664// XCOFF32 and XCOFF64. 665uint32_t getSymbolTableOffset32()
const;
666uint64_t getSymbolTableOffset64()
const;
668// Note that this value is signed and might return a negative value. Negative 669// values are reserved for future use. 670 int32_t getRawNumberOfSymbolTableEntries32()
const;
672// The sanitized value appropriate to use as an index into the symbol table. 673uint32_t getLogicalNumberOfSymbolTableEntries32()
const;
675uint32_t getNumberOfSymbolTableEntries64()
const;
677// Return getLogicalNumberOfSymbolTableEntries32 or 678// getNumberOfSymbolTableEntries64 depending on the object mode. 679uint32_t getNumberOfSymbolTableEntries()
const;
681uint32_t getSymbolIndex(uintptr_t SymEntPtr)
const;
684returnreinterpret_cast<uintptr_t
>(SymbolTblPtr) +
687 uintptr_t getSymbolEntryAddressByIndex(
uint32_t SymbolTableIndex)
const;
691uint16_t getOptionalHeaderSize()
const;
694// Section header table related interfaces. 704void checkSymbolEntryPointer(uintptr_t SymbolEntPtr)
const;
706// Relocation-related interfaces. 711template <
typename Shdr,
typename Reloc>
714// Loader section related interfaces. 717// Exception-related interface. 718template <
typename ExceptEnt>
721// This function returns string table entry. 724// This function returns the string table. 729static uintptr_t getAdvancedSymbolEntryAddress(uintptr_t CurrentAddress,
734 std::optional<StringRef> tryGetCPUName()
const override;
780XCOFFObjectFile::relocations<XCOFFSectionHeader32, XCOFFRelocation32>(
783XCOFFObjectFile::relocations<XCOFFSectionHeader64, XCOFFRelocation64>(
792 :
SymbolRef(SymEntDataRef, OwningObjectPtr) {
793assert(OwningObjectPtr &&
"OwningObjectPtr cannot be nullptr!");
795"Symbol table entry pointer cannot be nullptr!");
825 getObject()->is64Bit() \ 826 ? reinterpret_cast<const XCOFFSymbolEntry64 *>(getRawDataRefImpl().p)->X \ 827 : reinterpret_cast<const XCOFFSymbolEntry32 *>(getRawDataRefImpl().p)->X 835"This interface is for C_FILE only.");
836returnGETVALUE(CFileLanguageIdAndTypeId.LanguageId);
841"This interface is for C_FILE only.");
842returnGETVALUE(CFileLanguageIdAndTypeId.CpuTypeId);
899/// This class provides methods to extract traceback table data from a buffer. 900/// The various accessors may reference the buffer provided via the constructor. 905 std::optional<SmallString<32>> ParmsType;
906 std::optional<uint32_t> TraceBackTableOffset;
907 std::optional<uint32_t> HandlerMask;
908 std::optional<uint32_t> NumOfCtlAnchors;
909 std::optional<SmallVector<uint32_t, 8>> ControlledStorageInfoDisp;
910 std::optional<StringRef> FunctionName;
911 std::optional<uint8_t> AllocaRegister;
912 std::optional<TBVectorExt> VecExt;
913 std::optional<uint8_t> ExtensionTable;
914 std::optional<uint64_t> EhInfoDisp;
920 /// Parse an XCOFF Traceback Table from \a Ptr with \a Size bytes. 921 /// Returns an XCOFFTracebackTable upon successful parsing, otherwise an 922 /// Error is returned. 925 /// A pointer that points just past the initial 4 bytes of zeros at the 926 /// beginning of an XCOFF Traceback Table. 928 /// \param[in, out] Size 929 /// A pointer that points to the length of the XCOFF Traceback Table. 930 /// If the XCOFF Traceback Table is not parsed successfully or there are 931 /// extra bytes that are not recognized, \a Size will be updated to be the 932 /// size up to the end of the last successfully parsed field of the table. 971return TraceBackTableOffset;
975return NumOfCtlAnchors;
977const std::optional<SmallVector<uint32_t, 8>> &
979return ControlledStorageInfoDisp;
985return AllocaRegister;
989return ExtensionTable;
998#endif// LLVM_OBJECT_XCOFFOBJECTFILE_H static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
static StringRef getSymbolName(SymbolKind SymKind)
Returns the sub type a function will return at a given Idx Should correspond to the result type of an ExtractValue instruction executed with just that one unsigned Idx
static bool isDebugSection(const SectionBase &Sec)
static FeatureBitset getFeatures(MCSubtargetInfo &STI, StringRef CPU, StringRef TuneCPU, StringRef FS, ArrayRef< StringRef > ProcNames, ArrayRef< SubtargetSubTypeKV > ProcDesc, ArrayRef< SubtargetFeatureKV > ProcFeatures)
static uint32_t getSectionFlags(const MachOObjectFile &O, DataRefImpl Sec)
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
This file defines the SmallString class.
This file defines the SmallVector class.
static unsigned getSymbolSectionID(const ObjectFile &O, SymbolRef Sym)
static uint32_t getFlags(const Symbol *Sym)
static std::unique_ptr< PDBSymbol > getSymbolType(const PDBSymbol &Symbol)
static bool is64Bit(const char *name)
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Lightweight error class with error context and mandatory checking.
Tagged union holding either a T or a Error.
SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better...
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
StringRef - Represent a constant reference to a string, i.e.
A table of densely packed, null-terminated strings indexed by offset.
The instances of the Type class are immutable: once they are created, they are never changed.
LLVM Value Representation.
A range adaptor for a pair of iterators.
const SymbolicFile * getObject() const
DataRefImpl getRawDataRefImpl() const
This class is the base class for all object file types.
static Expected< std::unique_ptr< ObjectFile > > createXCOFFObjectFile(MemoryBufferRef Object, unsigned FileType)
This is a value type class that represents a single symbol in the list of symbols in the object file.
SmallString< 32 > getVectorParmsInfo() const
uint8_t getNumberOfVectorParms() const
static Expected< TBVectorExt > create(StringRef TBvectorStrRef)
bool isVRSavedOnStack() const
uint8_t getNumberOfVRSaved() const
bool hasVMXInstruction() const
XCOFF::StorageMappingClass getStorageMappingClass() const
XCOFFCsectAuxRef(const XCOFFCsectAuxEnt32 *Entry32)
uint32_t getSectionOrLength32() const
uint16_t getStabSectNum32() const
uint32_t getParameterHashIndex() const
uint8_t getSymbolType() const
uintptr_t getEntryAddress() const
uint64_t getSectionOrLength() const
uint16_t getAlignmentLog2() const
XCOFFCsectAuxRef(const XCOFFCsectAuxEnt64 *Entry64)
uint32_t getStabInfoIndex32() const
uint64_t getSectionOrLength64() const
XCOFF::SymbolAuxType getAuxType64() const
uint16_t getTypeChkSectNum() const
uint8_t getSymbolAlignmentAndType() const
const void * getPointerToSymbolTable() const
static bool classof(const Binary *B)
uintptr_t getSymbolByIndex(uint32_t Idx) const
bool is64Bit() const override
uint64_t getSymbolSize(DataRefImpl Symb) const
Expected< XCOFFCsectAuxRef > getXCOFFCsectAuxRef() const
Expected< bool > isFunction() const
int16_t getSectionNumber() const
bool isCsectSymbol() const
const XCOFFSymbolEntry64 * getSymbol64() const
XCOFFSymbolRef(DataRefImpl SymEntDataRef, const XCOFFObjectFile *OwningObjectPtr)
const XCOFFSymbolEntry32 * getSymbol32() const
uint16_t getSymbolType() const
uint32_t getValue32() const
uint64_t getValue() const
Expected< StringRef > getName() const
uint8_t getCPUTypeIddForCFile() const
uint64_t getValue64() const
uint8_t getNumberOfAuxEntries() const
uintptr_t getEntryAddress() const
XCOFF::StorageClass getStorageClass() const
uint8_t getLanguageIdForCFile() const
This class provides methods to extract traceback table data from a buffer.
bool isOutOfLineEpilogOrPrologue() const
const std::optional< StringRef > & getFunctionName() const
const std::optional< uint64_t > & getEhInfoDisp() const
const std::optional< uint32_t > & getTraceBackTableOffset() const
uint8_t getNumOfGPRsSaved() const
bool hasTraceBackTableOffset() const
bool hasParmsOnStack() const
bool hasExtensionTable() const
const std::optional< SmallVector< uint32_t, 8 > > & getControlledStorageInfoDisp()
const std::optional< uint8_t > & getExtensionTable() const
const std::optional< SmallString< 32 > > & getParmsType() const
uint8_t getOnConditionDirective() const
uint8_t getLanguageID() const
uint8_t getNumOfFPRsSaved() const
bool isFloatingPointOperationLogOrAbortEnabled() const
uint8_t getNumberOfFPParms() const
bool isFuncNamePresent() const
const std::optional< uint32_t > & getNumOfCtlAnchors()
bool isAllocaUsed() const
bool isGlobalLinkage() const
const std::optional< uint32_t > & getHandlerMask() const
bool isInternalProcedure() const
bool hasControlledStorage() const
bool isInterruptHandler() const
const std::optional< TBVectorExt > & getVectorExt() const
bool isFloatingPointPresent() const
uint8_t getVersion() const
static Expected< XCOFFTracebackTable > create(const uint8_t *Ptr, uint64_t &Size, bool Is64Bits=false)
Parse an XCOFF Traceback Table from Ptr with Size bytes.
bool isBackChainStored() const
const std::optional< uint8_t > & getAllocaRegister() const
uint8_t getNumberOfFixedParms() const
bool hasVectorInfo() const
const SymbolRef * operator->() const
const SymbolRef & operator*() const
const XCOFFSymbolRef * operator->() const
const XCOFFSymbolRef & operator*() const
xcoff_symbol_iterator(const XCOFFSymbolRef *Symbol)
xcoff_symbol_iterator(const basic_symbol_iterator &B)
This provides a very simple, boring adaptor for a begin and end iterator into a range type.
constexpr size_t NameSize
StorageMappingClass
Storage Mapping Class definitions.
constexpr size_t SymbolTableEntrySize
constexpr size_t FileNamePadSize
@ XTY_LD
Label definition.
static constexpr const StringLiteral & getSectionName(DebugSectionKind SectionKind)
Return the name of the section.
bool doesXCOFFTracebackTableBegin(ArrayRef< uint8_t > Bytes)
ExceptionSectionEntry< support::ubig64_t > ExceptionSectionEntry64
ExceptionSectionEntry< support::ubig32_t > ExceptionSectionEntry32
This is an optimization pass for GlobalISel generic memory operations.
@ Ref
The access may reference the value stored in memory.
support::ubig32_t SymbolIdx
uint8_t getReason() const
uint64_t getTrapInstAddr() const
uint8_t getLangID() const
uint32_t getSymbolIndex() const
support::ubig32_t NumberOfRelTabEnt
support::ubig32_t LengthOfImpidStrTbl
support::ubig32_t NumberOfImpid
uint64_t getOffsetToSymTbl() const
uint64_t getOffsetToRelEnt() const
support::ubig32_t Version
support::ubig32_t LengthOfStrTbl
support::big32_t OffsetToImpid
support::ubig32_t NumberOfSymTabEnt
support::big32_t OffsetToStrTbl
support::ubig32_t LengthOfImpidStrTbl
support::ubig32_t NumberOfImpid
support::ubig32_t LengthOfStrTbl
support::ubig32_t NumberOfSymTabEnt
support::ubig32_t NumberOfRelTabEnt
uint64_t getOffsetToRelEnt() const
support::ubig32_t Version
support::big64_t OffsetToImpid
support::big64_t OffsetToRelEnt
support::big64_t OffsetToStrTbl
support::big64_t OffsetToSymTbl
uint64_t getOffsetToSymTbl() const
support::big32_t SymbolIndex
support::ubig32_t VirtualAddr
support::big16_t SectionNum
support::ubig64_t VirtualAddr
support::big16_t SectionNum
support::big32_t SymbolIndex
support::big32_t IsNameInStrTbl
XCOFF::StorageClass StorageClass
support::big16_t SectionNumber
support::ubig32_t ParameterTypeCheck
support::ubig32_t ImportFileID
support::ubig32_t ParameterTypeCheck
XCOFF::StorageClass StorageClass
support::big16_t SectionNumber
support::ubig32_t ImportFileID
support::ubig16_t MaxAlignOfText
support::ubig32_t MaxStackSize
If the value is 0, the system default maximum stack size is used.
support::ubig16_t ModuleType
support::ubig32_t DataStartAddr
support::ubig16_t SecNumOfText
support::ubig16_t AuxMagic
If the value of the o_vstamp field is greater than 1, the o_mflags field is reserved for future use a...
support::ubig16_t SecNumOfTBSS
support::ubig16_t SecNumOfData
uint8_t TextPageSize
Specifies the size of pages for the exec text.
uint8_t StackPageSize
Specifies the size of pages for the stack.
support::ubig32_t ReservedForDebugger
This field should contain 0.
support::ubig16_t SecNumOfBSS
support::ubig32_t EntryPointAddr
support::ubig32_t TextStartAddr
support::ubig16_t SecNumOfEntryPoint
support::ubig32_t InitDataSize
support::ubig16_t Version
The valid values are 1 and 2.
support::ubig16_t SecNumOfTOC
support::ubig16_t MaxAlignOfData
support::ubig32_t TOCAnchorAddr
support::ubig32_t TextSize
support::ubig32_t BssDataSize
uint8_t FlagAndTDataAlignment
support::ubig16_t SecNumOfTData
support::ubig16_t SecNumOfLoader
uint8_t DataPageSize
Specifies the size of pages for the exec data.
support::ubig32_t MaxDataSize
If the value is 0, the system default maximum data size is used.
support::ubig64_t EntryPointAddr
support::ubig64_t TextStartAddr
support::ubig16_t XCOFF64Flag
support::ubig16_t AuxMagic
support::ubig64_t TextSize
support::ubig64_t MaxDataSize
support::ubig64_t InitDataSize
support::ubig16_t SecNumOfText
support::ubig16_t SecNumOfEntryPoint
support::ubig64_t BssDataSize
support::ubig16_t SecNumOfTBSS
support::ubig64_t DataStartAddr
support::ubig16_t MaxAlignOfData
support::ubig32_t ReservedForDebugger
support::ubig16_t Version
support::ubig16_t SecNumOfTOC
support::ubig16_t MaxAlignOfText
support::ubig16_t SecNumOfTData
support::ubig16_t SecNumOfLoader
uint8_t FlagAndTDataAlignment
support::ubig16_t ModuleType
support::ubig16_t SecNumOfData
support::ubig16_t SecNumOfBSS
support::ubig64_t TOCAnchorAddr
support::ubig64_t MaxStackSize
uint64_t getEntryPointAddr() const
static constexpr uint8_t AuxiHeaderTDataAlignmentMask
uint16_t getVersion() const
static constexpr uint8_t AuxiHeaderFlagMask
uint8_t getTDataAlignment() const
uint8_t ReservedZeros1[2]
support::ubig16_t LineNumLo
support::ubig16_t LineNumHi
uint8_t ReservedZeros2[12]
XCOFF::SymbolAuxType AuxType
support::ubig32_t LineNum
support::ubig16_t TypeChkSectNum
support::ubig16_t StabSectNum
support::ubig32_t ParameterHashIndex
support::ubig32_t SectionOrLength
support::ubig32_t StabInfoIndex
XCOFF::StorageMappingClass StorageMappingClass
uint8_t SymbolAlignmentAndType
XCOFF::StorageMappingClass StorageMappingClass
support::ubig32_t SectionOrLengthLowByte
support::ubig16_t TypeChkSectNum
support::ubig32_t SectionOrLengthHighByte
support::ubig32_t ParameterHashIndex
uint8_t SymbolAlignmentAndType
XCOFF::SymbolAuxType AuxType
support::ubig32_t SizeOfFunction
support::big32_t SymIdxOfNextBeyond
support::ubig64_t OffsetToExceptionTbl
XCOFF::SymbolAuxType AuxType
NameInStrTblType NameInStrTbl
XCOFF::SymbolAuxType AuxType
XCOFF::CFileStringType Type
char Name[XCOFF::NameSize+XCOFF::FileNamePadSize]
support::big32_t NumberOfSymTableEntries
support::big32_t TimeStamp
support::ubig16_t AuxHeaderSize
support::ubig16_t NumberOfSections
support::ubig32_t SymbolTableOffset
support::big32_t TimeStamp
support::ubig16_t AuxHeaderSize
support::ubig64_t SymbolTableOffset
support::ubig32_t NumberOfSymTableEntries
support::ubig16_t NumberOfSections
support::ubig32_t SizeOfFunction
support::ubig32_t PtrToLineNum
support::ubig32_t OffsetToExceptionTbl
support::big32_t SymIdxOfNextBeyond
support::big32_t SymIdxOfNextBeyond
support::ubig64_t PtrToLineNum
XCOFF::SymbolAuxType AuxType
support::ubig32_t SizeOfFunction
XCOFF::RelocationType Type
AddressType VirtualAddress
bool isFixupIndicated() const
support::ubig32_t SymbolIndex
uint8_t getRelocatedLength() const
bool isRelocationSigned() const
support::ubig32_t LengthOfSectionPortion
support::ubig32_t NumberOfRelocEnt
XCOFF::SymbolAuxType AuxType
support::ubig64_t LengthOfSectionPortion
support::ubig64_t NumberOfRelocEnt
support::ubig32_t SectionLength
support::ubig16_t NumberOfLineNum
support::ubig16_t NumberOfRelocEnt
support::ubig16_t NumberOfRelocations
support::ubig32_t FileOffsetToRawData
support::ubig32_t SectionSize
support::ubig32_t FileOffsetToLineNumberInfo
support::ubig16_t NumberOfLineNumbers
support::ubig32_t VirtualAddress
support::ubig32_t FileOffsetToRelocationInfo
support::ubig32_t PhysicalAddress
support::ubig64_t VirtualAddress
support::ubig32_t NumberOfRelocations
support::ubig64_t SectionSize
support::big64_t FileOffsetToRawData
support::ubig32_t NumberOfLineNumbers
support::big64_t FileOffsetToRelocationInfo
support::big64_t FileOffsetToLineNumberInfo
support::ubig64_t PhysicalAddress
static constexpr unsigned SectionFlagsReservedMask
bool isReservedSectionType() const
StringRef getName() const
uint32_t getSectionSubtype() const
static constexpr unsigned SectionFlagsTypeMask
uint16_t getSectionType() const
uint8_t NumberOfAuxEntries
support::ubig16_t SymbolType
CFileLanguageIdAndTypeIdType CFileLanguageIdAndTypeId
XCOFF::StorageClass StorageClass
NameInStrTblType NameInStrTbl
char SymbolName[XCOFF::NameSize]
support::big16_t SectionNumber
support::big16_t SectionNumber
uint8_t NumberOfAuxEntries
support::ubig16_t SymbolType
CFileLanguageIdAndTypeIdType CFileLanguageIdAndTypeId
XCOFF::StorageClass StorageClass