diff --git a/bindings/go/llvm/DIBuilderBindings.cpp b/bindings/go/llvm/DIBuilderBindings.cpp index f39198df42d..8d80602e116 100644 --- a/bindings/go/llvm/DIBuilderBindings.cpp +++ b/bindings/go/llvm/DIBuilderBindings.cpp @@ -21,12 +21,6 @@ using namespace llvm; DEFINE_SIMPLE_CONVERSION_FUNCTIONS(DIBuilder, LLVMDIBuilderRef) -namespace { -template T unwrapDI(LLVMMetadataRef v) { - return v ? T(unwrap(v)) : T(); -} -} - LLVMDIBuilderRef LLVMNewDIBuilder(LLVMModuleRef mref) { Module *m = unwrap(mref); return wrap(new DIBuilder(*m)); @@ -64,8 +58,9 @@ LLVMMetadataRef LLVMDIBuilderCreateLexicalBlock(LLVMDIBuilderRef Dref, unsigned Line, unsigned Column) { DIBuilder *D = unwrap(Dref); - DILexicalBlock LB = D->createLexicalBlock( - unwrapDI(Scope), unwrapDI(File), Line, Column); + DILexicalBlock LB = + D->createLexicalBlock(DIDescriptor(unwrap(Scope)), + unwrap(File), Line, Column); return wrap(LB); } @@ -74,8 +69,9 @@ LLVMMetadataRef LLVMDIBuilderCreateLexicalBlockFile(LLVMDIBuilderRef Dref, LLVMMetadataRef File, unsigned Discriminator) { DIBuilder *D = unwrap(Dref); - DILexicalBlockFile LBF = D->createLexicalBlockFile( - unwrapDI(Scope), unwrapDI(File), Discriminator); + DILexicalBlockFile LBF = + D->createLexicalBlockFile(DIDescriptor(unwrap(Scope)), + unwrap(File), Discriminator); return wrap(LBF); } @@ -86,9 +82,10 @@ LLVMMetadataRef LLVMDIBuilderCreateFunction( unsigned ScopeLine, unsigned Flags, int IsOptimized, LLVMValueRef Func) { DIBuilder *D = unwrap(Dref); DISubprogram SP = D->createFunction( - unwrapDI(Scope), Name, LinkageName, unwrapDI(File), - Line, unwrapDI(CompositeType), IsLocalToUnit, - IsDefinition, ScopeLine, Flags, IsOptimized, unwrap(Func)); + DIDescriptor(unwrap(Scope)), Name, LinkageName, + unwrap(File), Line, unwrap(CompositeType), + IsLocalToUnit, IsDefinition, ScopeLine, Flags, IsOptimized, + unwrap(Func)); return wrap(SP); } @@ -98,8 +95,8 @@ LLVMMetadataRef LLVMDIBuilderCreateLocalVariable( int AlwaysPreserve, unsigned Flags, unsigned ArgNo) { DIBuilder *D = unwrap(Dref); DIVariable V = D->createLocalVariable( - Tag, unwrapDI(Scope), Name, unwrapDI(File), Line, - unwrapDI(Ty), AlwaysPreserve, Flags, ArgNo); + Tag, DIDescriptor(unwrap(Scope)), Name, unwrap(File), + Line, unwrap(Ty), AlwaysPreserve, Flags, ArgNo); return wrap(V); } @@ -119,7 +116,7 @@ LLVMMetadataRef LLVMDIBuilderCreatePointerType(LLVMDIBuilderRef Dref, uint64_t AlignInBits, const char *Name) { DIBuilder *D = unwrap(Dref); - DIDerivedType T = D->createPointerType(unwrapDI(PointeeType), + DIDerivedType T = D->createPointerType(unwrap(PointeeType), SizeInBits, AlignInBits, Name); return wrap(T); } @@ -129,7 +126,7 @@ LLVMDIBuilderCreateSubroutineType(LLVMDIBuilderRef Dref, LLVMMetadataRef File, LLVMMetadataRef ParameterTypes) { DIBuilder *D = unwrap(Dref); DICompositeType CT = D->createSubroutineType( - unwrapDI(File), unwrapDI(ParameterTypes)); + unwrap(File), DITypeArray(unwrap(ParameterTypes))); return wrap(CT); } @@ -140,9 +137,9 @@ LLVMMetadataRef LLVMDIBuilderCreateStructType( LLVMMetadataRef ElementTypes) { DIBuilder *D = unwrap(Dref); DICompositeType CT = D->createStructType( - unwrapDI(Scope), Name, unwrapDI(File), Line, - SizeInBits, AlignInBits, Flags, unwrapDI(DerivedFrom), - unwrapDI(ElementTypes)); + DIDescriptor(unwrap(Scope)), Name, unwrap(File), Line, + SizeInBits, AlignInBits, Flags, unwrap(DerivedFrom), + DIArray(unwrap(ElementTypes))); return wrap(CT); } @@ -153,8 +150,8 @@ LLVMMetadataRef LLVMDIBuilderCreateReplaceableCompositeType( unsigned Flags) { DIBuilder *D = unwrap(Dref); DICompositeType CT = D->createReplaceableCompositeType( - Tag, Name, unwrapDI(Scope), unwrapDI(File), Line, - RuntimeLang, SizeInBits, AlignInBits, Flags); + Tag, Name, DIDescriptor(unwrap(Scope)), unwrap(File), + Line, RuntimeLang, SizeInBits, AlignInBits, Flags); return wrap(CT); } @@ -166,8 +163,8 @@ LLVMDIBuilderCreateMemberType(LLVMDIBuilderRef Dref, LLVMMetadataRef Scope, unsigned Flags, LLVMMetadataRef Ty) { DIBuilder *D = unwrap(Dref); DIDerivedType DT = D->createMemberType( - unwrapDI(Scope), Name, unwrapDI(File), Line, - SizeInBits, AlignInBits, OffsetInBits, Flags, unwrapDI(Ty)); + DIDescriptor(unwrap(Scope)), Name, unwrap(File), Line, + SizeInBits, AlignInBits, OffsetInBits, Flags, unwrap(Ty)); return wrap(DT); } @@ -178,8 +175,8 @@ LLVMMetadataRef LLVMDIBuilderCreateArrayType(LLVMDIBuilderRef Dref, LLVMMetadataRef Subscripts) { DIBuilder *D = unwrap(Dref); DICompositeType CT = - D->createArrayType(SizeInBits, AlignInBits, unwrapDI(ElementType), - unwrapDI(Subscripts)); + D->createArrayType(SizeInBits, AlignInBits, unwrap(ElementType), + DIArray(unwrap(Subscripts))); return wrap(CT); } @@ -189,8 +186,8 @@ LLVMMetadataRef LLVMDIBuilderCreateTypedef(LLVMDIBuilderRef Dref, LLVMMetadataRef Context) { DIBuilder *D = unwrap(Dref); DIDerivedType DT = - D->createTypedef(unwrapDI(Ty), Name, unwrapDI(File), Line, - unwrapDI(Context)); + D->createTypedef(unwrap(Ty), Name, unwrap(File), Line, + DIDescriptor(unwrap(Context))); return wrap(DT); } @@ -235,8 +232,8 @@ LLVMValueRef LLVMDIBuilderInsertDeclareAtEnd(LLVMDIBuilderRef Dref, LLVMBasicBlockRef Block) { DIBuilder *D = unwrap(Dref); Instruction *Instr = - D->insertDeclare(unwrap(Storage), unwrapDI(VarInfo), - unwrapDI(Expr), unwrap(Block)); + D->insertDeclare(unwrap(Storage), unwrap(VarInfo), + unwrap(Expr), unwrap(Block)); return wrap(Instr); } @@ -247,7 +244,7 @@ LLVMValueRef LLVMDIBuilderInsertValueAtEnd(LLVMDIBuilderRef Dref, LLVMBasicBlockRef Block) { DIBuilder *D = unwrap(Dref); Instruction *Instr = D->insertDbgValueIntrinsic( - unwrap(Val), Offset, unwrapDI(VarInfo), - unwrapDI(Expr), unwrap(Block)); + unwrap(Val), Offset, unwrap(VarInfo), + unwrap(Expr), unwrap(Block)); return wrap(Instr); }