Go bindings: use MDNode::replaceAllUsesWith instead of MDTuple::replaceAllUsesWith.
authorPeter Collingbourne <peter@pcc.me.uk>
Thu, 5 Mar 2015 22:55:38 +0000 (22:55 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Thu, 5 Mar 2015 22:55:38 +0000 (22:55 +0000)
Fixes llgo following Duncan's changes to debug info in r231082. llgo needs
to replace composite types, which are no longer represented using MDTuple.

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

bindings/go/llvm/IRBindings.cpp

index fb451ef..fd0cb80 100644 (file)
@@ -86,9 +86,8 @@ void LLVMSetMetadata2(LLVMValueRef Inst, unsigned KindID, LLVMMetadataRef MD) {
 }
 
 void LLVMMetadataReplaceAllUsesWith(LLVMMetadataRef MD, LLVMMetadataRef New) {
 }
 
 void LLVMMetadataReplaceAllUsesWith(LLVMMetadataRef MD, LLVMMetadataRef New) {
-  auto *Node = unwrap<MDTuple>(MD);
-  assert(Node->isTemporary() && "Expected temporary node");
-  Node->replaceAllUsesWith(unwrap<MDNode>(New));
+  auto *Node = unwrap<MDNode>(MD);
+  Node->replaceAllUsesWith(unwrap<Metadata>(New));
   MDNode::deleteTemporary(Node);
 }
 
   MDNode::deleteTemporary(Node);
 }