diff options
Diffstat (limited to 'contrib/llvm-project/llvm/include/llvm/MC/MCSectionXCOFF.h')
-rw-r--r-- | contrib/llvm-project/llvm/include/llvm/MC/MCSectionXCOFF.h | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/contrib/llvm-project/llvm/include/llvm/MC/MCSectionXCOFF.h b/contrib/llvm-project/llvm/include/llvm/MC/MCSectionXCOFF.h index eed6b9c2609c..aa39dff07180 100644 --- a/contrib/llvm-project/llvm/include/llvm/MC/MCSectionXCOFF.h +++ b/contrib/llvm-project/llvm/include/llvm/MC/MCSectionXCOFF.h @@ -34,22 +34,23 @@ class MCSectionXCOFF final : public MCSection { XCOFF::StorageMappingClass MappingClass; XCOFF::SymbolType Type; - XCOFF::StorageClass StorageClass; MCSymbolXCOFF *const QualName; StringRef SymbolTableName; + bool MultiSymbolsAllowed; static constexpr unsigned DefaultAlignVal = 4; MCSectionXCOFF(StringRef Name, XCOFF::StorageMappingClass SMC, - XCOFF::SymbolType ST, XCOFF::StorageClass SC, SectionKind K, - MCSymbolXCOFF *QualName, MCSymbol *Begin, - StringRef SymbolTableName) + XCOFF::SymbolType ST, SectionKind K, MCSymbolXCOFF *QualName, + MCSymbol *Begin, StringRef SymbolTableName, + bool MultiSymbolsAllowed) : MCSection(SV_XCOFF, Name, K, Begin), MappingClass(SMC), Type(ST), - StorageClass(SC), QualName(QualName), SymbolTableName(SymbolTableName) { + QualName(QualName), SymbolTableName(SymbolTableName), + MultiSymbolsAllowed(MultiSymbolsAllowed) { assert((ST == XCOFF::XTY_SD || ST == XCOFF::XTY_CM || ST == XCOFF::XTY_ER) && "Invalid or unhandled type for csect."); assert(QualName != nullptr && "QualName is needed."); - QualName->setStorageClass(SC); QualName->setRepresentedCsect(this); + QualName->setStorageClass(XCOFF::C_HIDEXT); // A csect is 4 byte aligned by default, except for undefined symbol csects. if (Type != XCOFF::XTY_ER) setAlignment(Align(DefaultAlignVal)); @@ -65,7 +66,9 @@ public: } XCOFF::StorageMappingClass getMappingClass() const { return MappingClass; } - XCOFF::StorageClass getStorageClass() const { return StorageClass; } + XCOFF::StorageClass getStorageClass() const { + return QualName->getStorageClass(); + } XCOFF::SymbolType getCSectType() const { return Type; } MCSymbolXCOFF *getQualNameSymbol() const { return QualName; } @@ -75,6 +78,7 @@ public: bool UseCodeAlign() const override; bool isVirtualSection() const override; StringRef getSymbolTableName() const { return SymbolTableName; } + bool isMultiSymbolsAllowed() const { return MultiSymbolsAllowed; } }; } // end namespace llvm |