llvm-vtabledump: Handle Itanium VTables
[oota-llvm.git] / lib / IR / Metadata.cpp
index 60cd2fc9061b7556259133824de662a6cce75b02..ba86e9e60855c7c3bbcd327079c948c66e39875f 100644 (file)
@@ -605,16 +605,16 @@ void Instruction::setMetadata(StringRef Kind, Value *MD) {
   setMetadata(getContext().getMDKindID(Kind), MD);
 }
 
-MDNode *Instruction::getMetadataImpl(StringRef Kind) const {
+Value *Instruction::getMetadataImpl(StringRef Kind) const {
   return getMetadataImpl(getContext().getMDKindID(Kind));
 }
 
 MDNode *Instruction::getMDNodeImpl(unsigned KindID) const {
-  return getMetadataImpl(KindID);
+  return cast_or_null<MDNode>(getMetadataImpl(KindID));
 }
 
 MDNode *Instruction::getMDNodeImpl(StringRef Kind) const {
-  return getMetadataImpl(Kind);
+  return cast_or_null<MDNode>(getMetadataImpl(Kind));
 }
 
 void Instruction::dropUnknownMetadata(ArrayRef<unsigned> KnownIDs) {
@@ -729,7 +729,7 @@ void Instruction::setAAMetadata(const AAMDNodes &N) {
   setMetadata(LLVMContext::MD_noalias, N.NoAlias);
 }
 
-MDNode *Instruction::getMetadataImpl(unsigned KindID) const {
+Value *Instruction::getMetadataImpl(unsigned KindID) const {
   // Handle 'dbg' as a special case since it is not stored in the hash table.
   if (KindID == LLVMContext::MD_dbg)
     return DbgLoc.getAsMDNode(getContext());
@@ -745,8 +745,8 @@ MDNode *Instruction::getMetadataImpl(unsigned KindID) const {
   return nullptr;
 }
 
-void Instruction::getAllMetadataImpl(SmallVectorImpl<std::pair<unsigned,
-                                       MDNode*> > &Result) const {
+void Instruction::getAllMetadataImpl(
+    SmallVectorImpl<std::pair<unsigned, Value *>> &Result) const {
   Result.clear();
   
   // Handle 'dbg' as a special case since it is not stored in the hash table.