DebugInfo: Move DIDerivedType accessors to MDDerivedType, NFC
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Mon, 13 Apr 2015 23:36:36 +0000 (23:36 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Mon, 13 Apr 2015 23:36:36 +0000 (23:36 +0000)
Add accessors in `MDDerivedType` to downcast `getExtraData()`, matching
those in `DIDerivedType`.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234816 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/IR/DebugInfo.h
include/llvm/IR/DebugInfoMetadata.h

index 1f515324757abb1fb800252fb365ec6118a9ed25..dfeaee8b303275fcc59c9e2da20c2481d2c52e75 100644 (file)
@@ -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();
   }
 };
 
index 3d2ae12f9be812da21c9d9ce48fa5c3e565a3c2c..f7b092f4e6ecd572d4911c21b31d850e1bdcc0c0 100644 (file)
@@ -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;
   }