// PushFunction creates debug metadata for the specified function, // and pushes it onto the scope stack. func (d *DIBuilder) PushFunction(fnptr llvm.Value, sig *types.Signature, pos token.Pos) { var diFile llvm.Metadata var line int if file := d.fset.File(pos); file != nil { d.fnFile = file.Name() diFile = d.getFile(file) line = file.Line(pos) } d.fn = d.builder.CreateFunction(d.scope(), llvm.DIFunction{ Name: fnptr.Name(), // TODO(axw) unmangled name? LinkageName: fnptr.Name(), File: diFile, Line: line, Type: d.DIType(sig), IsDefinition: true, }) fnptr.SetSubprogram(d.fn) }