Expose setPersonalityFn to Go
[oota-llvm.git] / bindings / go / llvm / ir.go
index f4b07afa53c604437542fc3efab25cd6d89c62e8..dcc34d8b3b8b962ff7deb1efcf30cacfc88c42b5 100644 (file)
@@ -160,6 +160,8 @@ const (
        InAllocaAttribute           Attribute = 1 << 43
        NonNullAttribute            Attribute = 1 << 44
        JumpTableAttribute          Attribute = 1 << 45
+       ConvergentAttribute         Attribute = 1 << 46
+       SafeStackAttribute          Attribute = 1 << 47
 )
 
 //-------------------------------------------------------------------------
@@ -754,6 +756,10 @@ func (c Context) TemporaryMDNode(mds []Metadata) (md Metadata) {
        md.C = C.LLVMTemporaryMDNode(c.C, ptr, nvals)
        return
 }
+func (v Value) ConstantAsMetadata() (md Metadata) {
+       md.C = C.LLVMConstantAsMetadata(v.C)
+       return
+}
 
 // Operations on scalar constants
 func ConstInt(t Type, n uint64, signExtend bool) (v Value) {
@@ -1048,6 +1054,9 @@ func (v Value) AddTargetDependentFunctionAttr(attr, value string) {
        defer C.free(unsafe.Pointer(cvalue))
        C.LLVMAddTargetDependentFunctionAttr(v.C, cattr, cvalue)
 }
+func (v Value) SetPersonality(p Value) {
+       C.LLVMSetPersonalityFn(v.C, p.C)
+}
 
 // Operations on parameters
 func (v Value) ParamsCount() int { return int(C.LLVMCountParams(v.C)) }
@@ -1200,7 +1209,7 @@ func (b Builder) Dispose() { C.LLVMDisposeBuilder(b.C) }
 func (b Builder) SetCurrentDebugLocation(line, col uint, scope, inlinedAt Metadata) {
        C.LLVMSetCurrentDebugLocation2(b.C, C.unsigned(line), C.unsigned(col), scope.C, inlinedAt.C)
 }
-func (b Builder) SetInstDebugLocation(v Value)    { C.LLVMSetInstDebugLocation(b.C, v.C) }
+func (b Builder) SetInstDebugLocation(v Value) { C.LLVMSetInstDebugLocation(b.C, v.C) }
 func (b Builder) InsertDeclare(module Module, storage Value, md Value) Value {
        f := module.NamedFunction("llvm.dbg.declare")
        if f.IsNil() {
@@ -1719,10 +1728,10 @@ func (b Builder) CreatePtrDiff(lhs, rhs Value, name string) (v Value) {
        return
 }
 
-func (b Builder) CreateLandingPad(t Type, personality Value, nclauses int, name string) (l Value) {
+func (b Builder) CreateLandingPad(t Type, nclauses int, name string) (l Value) {
        cname := C.CString(name)
        defer C.free(unsafe.Pointer(cname))
-       l.C = C.LLVMBuildLandingPad(b.C, t.C, personality.C, C.unsigned(nclauses), cname)
+       l.C = C.LLVMBuildLandingPad(b.C, t.C, C.unsigned(nclauses), cname)
        return l
 }