From a428eba85eb23b4b614dbf9555169592cd8c2511 Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Thu, 10 May 2018 18:09:53 +0000 Subject: [LLVM-C] Move DIBuilder Bindings For Temporary MDNodes Summary: Move LLVMTemporaryMDNode and LLVMMetadataReplaceAllUsesWith to the C bindings and add LLVMDeleteTemporaryMDNode for deleting non-RAUW'ed temporary nodes. Reviewers: whitequark, harlanhaskins, deadalnix Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D46632 llvm-svn: 332010 --- llvm/tools/llvm-c-test/debuginfo.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'llvm/tools/llvm-c-test') diff --git a/llvm/tools/llvm-c-test/debuginfo.c b/llvm/tools/llvm-c-test/debuginfo.c index 8bbe2b6d98f..6cc35168600 100644 --- a/llvm/tools/llvm-c-test/debuginfo.c +++ b/llvm/tools/llvm-c-test/debuginfo.c @@ -93,14 +93,23 @@ int llvm_test_dibuilder(void) { LLVMMetadataRef ParamTypes[] = {Int64Ty, Int64Ty, VectorTy}; LLVMMetadataRef FunctionTy = LLVMDIBuilderCreateSubroutineType(DIB, File, ParamTypes, 3, 0); + + LLVMMetadataRef ReplaceableFunctionMetadata = + LLVMDIBuilderCreateReplaceableCompositeType(DIB, 0x15, "foo", 3, + File, File, 42, + 0, 0, 0, + LLVMDIFlagFwdDecl, + "", 0); + + LLVMMetadataRef FooParamLocation = + LLVMDIBuilderCreateDebugLocation(LLVMGetGlobalContext(), 42, 0, + ReplaceableFunctionMetadata, NULL); LLVMMetadataRef FunctionMetadata = LLVMDIBuilderCreateFunction(DIB, File, "foo", 3, "foo", 3, File, 42, FunctionTy, true, true, 42, 0, false); + LLVMMetadataReplaceAllUsesWith(ReplaceableFunctionMetadata, FunctionMetadata); - LLVMMetadataRef FooParamLocation = - LLVMDIBuilderCreateDebugLocation(LLVMGetGlobalContext(), 42, 0, - FunctionMetadata, NULL); LLVMMetadataRef FooParamExpression = LLVMDIBuilderCreateExpression(DIB, NULL, 0); LLVMMetadataRef FooParamVar1 = -- cgit v1.2.3