diff options
Diffstat (limited to 'llvm/include/llvm/MC/MCSymbolXCOFF.h')
-rw-r--r-- | llvm/include/llvm/MC/MCSymbolXCOFF.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/include/llvm/MC/MCSymbolXCOFF.h b/llvm/include/llvm/MC/MCSymbolXCOFF.h index 98ecd2466926..07dfb5d29977 100644 --- a/llvm/include/llvm/MC/MCSymbolXCOFF.h +++ b/llvm/include/llvm/MC/MCSymbolXCOFF.h @@ -9,6 +9,7 @@ #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" @@ -48,6 +49,19 @@ public: return ContainingCsect; } + bool hasContainingCsect() const { return ContainingCsect != nullptr; } + + StringRef getUnqualifiedName() const { + const StringRef name = getName(); + 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; + } + private: Optional<XCOFF::StorageClass> StorageClass; MCSectionXCOFF *ContainingCsect = nullptr; |