[llvm] r246935 - [bindings] Update Go bindings to DIBuilder
Andrew Wilkins via llvm-commits
llvm-commits at lists.llvm.org
Sat Sep 5 19:22:16 PDT 2015
Author: axw
Date: Sat Sep 5 21:22:15 2015
New Revision: 246935
URL: http://llvm.org/viewvc/llvm-project?rev=246935&view=rev
Log:
[bindings] Update Go bindings to DIBuilder
Summary:
Update the Go bindings to DIBuilder to match
the split of creating local variables into
auto and parameter variables.
Reviewers: pcc
Subscribers: llvm-commits, axw
Differential Revision: http://reviews.llvm.org/D11864
Modified:
llvm/trunk/bindings/go/llvm/DIBuilderBindings.cpp
llvm/trunk/bindings/go/llvm/DIBuilderBindings.h
llvm/trunk/bindings/go/llvm/dibuilder.go
Modified: llvm/trunk/bindings/go/llvm/DIBuilderBindings.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/go/llvm/DIBuilderBindings.cpp?rev=246935&r1=246934&r2=246935&view=diff
==============================================================================
--- llvm/trunk/bindings/go/llvm/DIBuilderBindings.cpp (original)
+++ llvm/trunk/bindings/go/llvm/DIBuilderBindings.cpp Sat Sep 5 21:22:15 2015
@@ -83,21 +83,27 @@ LLVMMetadataRef LLVMDIBuilderCreateFunct
IsOptimized, unwrap<Function>(Func)));
}
-LLVMMetadataRef LLVMDIBuilderCreateLocalVariable(
- LLVMDIBuilderRef Dref, unsigned, LLVMMetadataRef Scope,
- const char *Name, LLVMMetadataRef File, unsigned Line, LLVMMetadataRef Ty,
- int AlwaysPreserve, unsigned Flags, unsigned ArgNo) {
+LLVMMetadataRef
+LLVMDIBuilderCreateAutoVariable(LLVMDIBuilderRef Dref, LLVMMetadataRef Scope,
+ const char *Name, LLVMMetadataRef File,
+ unsigned Line, LLVMMetadataRef Ty,
+ int AlwaysPreserve, unsigned Flags) {
DIBuilder *D = unwrap(Dref);
- // FIXME: Update the Go bindings to match the DIBuilder API.
- if (ArgNo)
- return wrap(D->createParameterVariable(
- unwrap<DIScope>(Scope), Name, ArgNo, unwrap<DIFile>(File), Line,
- unwrap<DIType>(Ty), AlwaysPreserve, Flags));
return wrap(D->createAutoVariable(unwrap<DIScope>(Scope), Name,
unwrap<DIFile>(File), Line,
unwrap<DIType>(Ty), AlwaysPreserve, Flags));
}
+LLVMMetadataRef LLVMDIBuilderCreateParameterVariable(
+ LLVMDIBuilderRef Dref, LLVMMetadataRef Scope, const char *Name,
+ unsigned ArgNo, LLVMMetadataRef File, unsigned Line, LLVMMetadataRef Ty,
+ int AlwaysPreserve, unsigned Flags) {
+ DIBuilder *D = unwrap(Dref);
+ return wrap(D->createParameterVariable(
+ unwrap<DIScope>(Scope), Name, ArgNo, unwrap<DIFile>(File), Line,
+ unwrap<DIType>(Ty), AlwaysPreserve, Flags));
+}
+
LLVMMetadataRef LLVMDIBuilderCreateBasicType(LLVMDIBuilderRef Dref,
const char *Name,
uint64_t SizeInBits,
Modified: llvm/trunk/bindings/go/llvm/DIBuilderBindings.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/go/llvm/DIBuilderBindings.h?rev=246935&r1=246934&r2=246935&view=diff
==============================================================================
--- llvm/trunk/bindings/go/llvm/DIBuilderBindings.h (original)
+++ llvm/trunk/bindings/go/llvm/DIBuilderBindings.h Sat Sep 5 21:22:15 2015
@@ -57,10 +57,16 @@ LLVMMetadataRef LLVMDIBuilderCreateFunct
LLVMMetadataRef CompositeType, int IsLocalToUnit, int IsDefinition,
unsigned ScopeLine, unsigned Flags, int IsOptimized, LLVMValueRef Function);
-LLVMMetadataRef LLVMDIBuilderCreateLocalVariable(
- LLVMDIBuilderRef D, unsigned Tag, LLVMMetadataRef Scope, const char *Name,
+LLVMMetadataRef
+LLVMDIBuilderCreateAutoVariable(LLVMDIBuilderRef D, LLVMMetadataRef Scope,
+ const char *Name, LLVMMetadataRef File,
+ unsigned Line, LLVMMetadataRef Ty,
+ int AlwaysPreserve, unsigned Flags);
+
+LLVMMetadataRef LLVMDIBuilderCreateParameterVariable(
+ LLVMDIBuilderRef D, LLVMMetadataRef Scope, const char *Name, unsigned ArgNo,
LLVMMetadataRef File, unsigned Line, LLVMMetadataRef Ty, int AlwaysPreserve,
- unsigned Flags, unsigned ArgNo);
+ unsigned Flags);
LLVMMetadataRef LLVMDIBuilderCreateBasicType(LLVMDIBuilderRef D,
const char *Name,
Modified: llvm/trunk/bindings/go/llvm/dibuilder.go
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/go/llvm/dibuilder.go?rev=246935&r1=246934&r2=246935&view=diff
==============================================================================
--- llvm/trunk/bindings/go/llvm/dibuilder.go (original)
+++ llvm/trunk/bindings/go/llvm/dibuilder.go Sat Sep 5 21:22:15 2015
@@ -216,9 +216,35 @@ func (d *DIBuilder) CreateFunction(diSco
return Metadata{C: result}
}
-// DILocalVariable holds the values for creating local variable debug metadata.
-type DILocalVariable struct {
- Tag dwarf.Tag
+// DIAutoVariable holds the values for creating auto variable debug metadata.
+type DIAutoVariable struct {
+ Name string
+ File Metadata
+ Line int
+ Type Metadata
+ AlwaysPreserve bool
+ Flags int
+}
+
+// CreateAutoVariable creates local variable debug metadata.
+func (d *DIBuilder) CreateAutoVariable(scope Metadata, v DIAutoVariable) Metadata {
+ name := C.CString(v.Name)
+ defer C.free(unsafe.Pointer(name))
+ result := C.LLVMDIBuilderCreateAutoVariable(
+ d.ref,
+ scope.C,
+ name,
+ v.File.C,
+ C.unsigned(v.Line),
+ v.Type.C,
+ boolToCInt(v.AlwaysPreserve),
+ C.unsigned(v.Flags),
+ )
+ return Metadata{C: result}
+}
+
+// DIParameterVariable holds the values for creating parameter variable debug metadata.
+type DIParameterVariable struct {
Name string
File Metadata
Line int
@@ -227,25 +253,24 @@ type DILocalVariable struct {
Flags int
// ArgNo is the 1-based index of the argument in the function's
- // parameter list if it is an argument, or 0 otherwise.
+ // parameter list.
ArgNo int
}
-// CreateLocalVariable creates local variable debug metadata.
-func (d *DIBuilder) CreateLocalVariable(scope Metadata, v DILocalVariable) Metadata {
+// CreateParameterVariable creates parameter variable debug metadata.
+func (d *DIBuilder) CreateParameterVariable(scope Metadata, v DIParameterVariable) Metadata {
name := C.CString(v.Name)
defer C.free(unsafe.Pointer(name))
- result := C.LLVMDIBuilderCreateLocalVariable(
+ result := C.LLVMDIBuilderCreateParameterVariable(
d.ref,
- C.unsigned(v.Tag),
scope.C,
name,
+ C.unsigned(v.ArgNo),
v.File.C,
C.unsigned(v.Line),
v.Type.C,
boolToCInt(v.AlwaysPreserve),
C.unsigned(v.Flags),
- C.unsigned(v.ArgNo),
)
return Metadata{C: result}
}
More information about the llvm-commits
mailing list