diff options
author | orivej <orivej@yandex-team.ru> | 2022-02-10 16:44:49 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:49 +0300 |
commit | 718c552901d703c502ccbefdfc3c9028d608b947 (patch) | |
tree | 46534a98bbefcd7b1f3faa5b52c138ab27db75b7 /contrib/libs/llvm12/include/llvm/MC/MCSymbolXCOFF.h | |
parent | e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (diff) | |
download | ydb-718c552901d703c502ccbefdfc3c9028d608b947.tar.gz |
Restoring authorship annotation for <orivej@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/llvm12/include/llvm/MC/MCSymbolXCOFF.h')
-rw-r--r-- | contrib/libs/llvm12/include/llvm/MC/MCSymbolXCOFF.h | 174 |
1 files changed, 87 insertions, 87 deletions
diff --git a/contrib/libs/llvm12/include/llvm/MC/MCSymbolXCOFF.h b/contrib/libs/llvm12/include/llvm/MC/MCSymbolXCOFF.h index 96735409d9..cd4a765b59 100644 --- a/contrib/libs/llvm12/include/llvm/MC/MCSymbolXCOFF.h +++ b/contrib/libs/llvm12/include/llvm/MC/MCSymbolXCOFF.h @@ -1,87 +1,87 @@ -#pragma once - -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#endif - -//===- MCSymbolXCOFF.h - ----------------------------------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -#ifndef LLVM_MC_MCSYMBOLXCOFF_H -#define LLVM_MC_MCSYMBOLXCOFF_H - -#include "llvm/ADT/Optional.h" -#include "llvm/ADT/StringRef.h" -#include "llvm/BinaryFormat/XCOFF.h" -#include "llvm/MC/MCSymbol.h" - -namespace llvm { - -class MCSectionXCOFF; - -class MCSymbolXCOFF : public MCSymbol { -public: - MCSymbolXCOFF(const StringMapEntry<bool> *Name, bool isTemporary) - : MCSymbol(SymbolKindXCOFF, Name, isTemporary) {} - - static bool classof(const MCSymbol *S) { return S->isXCOFF(); } - - static StringRef getUnqualifiedName(StringRef Name) { - if (Name.back() == ']') { - StringRef Lhs, Rhs; - std::tie(Lhs, Rhs) = Name.rsplit('['); - assert(!Rhs.empty() && "Invalid SMC format in XCOFF symbol."); - return Lhs; - } - return Name; - } - - void setStorageClass(XCOFF::StorageClass SC) { - StorageClass = SC; - }; - - XCOFF::StorageClass getStorageClass() const { - assert(StorageClass.hasValue() && - "StorageClass not set on XCOFF MCSymbol."); - return StorageClass.getValue(); - } - - StringRef getUnqualifiedName() const { return getUnqualifiedName(getName()); } - - MCSectionXCOFF *getRepresentedCsect() const; - - void setRepresentedCsect(MCSectionXCOFF *C); - - void setVisibilityType(XCOFF::VisibilityType SVT) { VisibilityType = SVT; }; - - XCOFF::VisibilityType getVisibilityType() const { return VisibilityType; } - - bool hasRename() const { return !SymbolTableName.empty(); } - - void setSymbolTableName(StringRef STN) { SymbolTableName = STN; } - - StringRef getSymbolTableName() const { - if (hasRename()) - return SymbolTableName; - return getUnqualifiedName(); - } - -private: - Optional<XCOFF::StorageClass> StorageClass; - MCSectionXCOFF *RepresentedCsect = nullptr; - XCOFF::VisibilityType VisibilityType = XCOFF::SYM_V_UNSPECIFIED; - StringRef SymbolTableName; -}; - -} // end namespace llvm - -#endif // LLVM_MC_MCSYMBOLXCOFF_H - -#ifdef __GNUC__ -#pragma GCC diagnostic pop -#endif +#pragma once + +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" +#endif + +//===- MCSymbolXCOFF.h - ----------------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +#ifndef LLVM_MC_MCSYMBOLXCOFF_H +#define LLVM_MC_MCSYMBOLXCOFF_H + +#include "llvm/ADT/Optional.h" +#include "llvm/ADT/StringRef.h" +#include "llvm/BinaryFormat/XCOFF.h" +#include "llvm/MC/MCSymbol.h" + +namespace llvm { + +class MCSectionXCOFF; + +class MCSymbolXCOFF : public MCSymbol { +public: + MCSymbolXCOFF(const StringMapEntry<bool> *Name, bool isTemporary) + : MCSymbol(SymbolKindXCOFF, Name, isTemporary) {} + + static bool classof(const MCSymbol *S) { return S->isXCOFF(); } + + static StringRef getUnqualifiedName(StringRef Name) { + if (Name.back() == ']') { + StringRef Lhs, Rhs; + std::tie(Lhs, Rhs) = Name.rsplit('['); + assert(!Rhs.empty() && "Invalid SMC format in XCOFF symbol."); + return Lhs; + } + return Name; + } + + void setStorageClass(XCOFF::StorageClass SC) { + StorageClass = SC; + }; + + XCOFF::StorageClass getStorageClass() const { + assert(StorageClass.hasValue() && + "StorageClass not set on XCOFF MCSymbol."); + return StorageClass.getValue(); + } + + StringRef getUnqualifiedName() const { return getUnqualifiedName(getName()); } + + MCSectionXCOFF *getRepresentedCsect() const; + + void setRepresentedCsect(MCSectionXCOFF *C); + + void setVisibilityType(XCOFF::VisibilityType SVT) { VisibilityType = SVT; }; + + XCOFF::VisibilityType getVisibilityType() const { return VisibilityType; } + + bool hasRename() const { return !SymbolTableName.empty(); } + + void setSymbolTableName(StringRef STN) { SymbolTableName = STN; } + + StringRef getSymbolTableName() const { + if (hasRename()) + return SymbolTableName; + return getUnqualifiedName(); + } + +private: + Optional<XCOFF::StorageClass> StorageClass; + MCSectionXCOFF *RepresentedCsect = nullptr; + XCOFF::VisibilityType VisibilityType = XCOFF::SYM_V_UNSPECIFIED; + StringRef SymbolTableName; +}; + +} // end namespace llvm + +#endif // LLVM_MC_MCSYMBOLXCOFF_H + +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif |