diff options
Diffstat (limited to 'include/llvm/IR/GlobalAlias.h')
-rw-r--r-- | include/llvm/IR/GlobalAlias.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/llvm/IR/GlobalAlias.h b/include/llvm/IR/GlobalAlias.h index a77d1630f4..075b5703bc 100644 --- a/include/llvm/IR/GlobalAlias.h +++ b/include/llvm/IR/GlobalAlias.h @@ -87,6 +87,21 @@ public: return getOperand(0); } + const GlobalObject *getBaseObject() const { + return const_cast<GlobalAlias *>(this)->getBaseObject(); + } + GlobalObject *getBaseObject() { + return dyn_cast<GlobalObject>(getAliasee()->stripInBoundsOffsets()); + } + + const GlobalObject *getBaseObject(const DataLayout &DL, APInt &Offset) const { + return const_cast<GlobalAlias *>(this)->getBaseObject(DL, Offset); + } + GlobalObject *getBaseObject(const DataLayout &DL, APInt &Offset) { + return dyn_cast<GlobalObject>( + getAliasee()->stripAndAccumulateInBoundsConstantOffsets(DL, Offset)); + } + static bool isValidLinkage(LinkageTypes L) { return isExternalLinkage(L) || isLocalLinkage(L) || isWeakLinkage(L) || isLinkOnceLinkage(L); |