summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/include/llvm/IR/DebugInfo.h13
-rw-r--r--llvm/include/llvm/IR/DebugInfoMetadata.h17
2 files changed, 20 insertions, 10 deletions
diff --git a/llvm/include/llvm/IR/DebugInfo.h b/llvm/include/llvm/IR/DebugInfo.h
index 1f515324757..dfeaee8b303 100644
--- a/llvm/include/llvm/IR/DebugInfo.h
+++ b/llvm/include/llvm/IR/DebugInfo.h
@@ -315,22 +315,15 @@ public:
/// \brief Return property node, if this ivar is associated with one.
MDObjCProperty *getObjCProperty() const {
- return dyn_cast_or_null<MDObjCProperty>(
- cast<MDDerivedType>(get())->getExtraData());
+ return cast<MDDerivedType>(get())->getObjCProperty();
}
DITypeRef getClassType() const {
- assert(getTag() == dwarf::DW_TAG_ptr_to_member_type);
- return MDTypeRef(cast<MDDerivedType>(get())->getExtraData());
+ return cast<MDDerivedType>(get())->getClassType();
}
Constant *getConstant() const {
- assert(getTag() == dwarf::DW_TAG_member && isStaticMember());
- if (auto *C = cast_or_null<ConstantAsMetadata>(
- cast<MDDerivedType>(get())->getExtraData()))
- return C->getValue();
-
- return nullptr;
+ return cast<MDDerivedType>(get())->getConstant();
}
};
diff --git a/llvm/include/llvm/IR/DebugInfoMetadata.h b/llvm/include/llvm/IR/DebugInfoMetadata.h
index 3d2ae12f9be..f7b092f4e6e 100644
--- a/llvm/include/llvm/IR/DebugInfoMetadata.h
+++ b/llvm/include/llvm/IR/DebugInfoMetadata.h
@@ -746,6 +746,23 @@ public:
Metadata *getExtraData() const { return getRawExtraData(); }
Metadata *getRawExtraData() const { return getOperand(4); }
+ /// \brief Get casted version of extra data.
+ /// @{
+ MDTypeRef getClassType() const {
+ assert(getTag() == dwarf::DW_TAG_ptr_to_member_type);
+ return MDTypeRef(getExtraData());
+ }
+ MDObjCProperty *getObjCProperty() const {
+ return dyn_cast_or_null<MDObjCProperty>(getExtraData());
+ }
+ Constant *getConstant() const {
+ assert(getTag() == dwarf::DW_TAG_member && isStaticMember());
+ if (auto *C = cast_or_null<ConstantAsMetadata>(getExtraData()))
+ return C->getValue();
+ return nullptr;
+ }
+ /// @}
+
static bool classof(const Metadata *MD) {
return MD->getMetadataID() == MDDerivedTypeKind;
}
OpenPOWER on IntegriCloud