mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
parent
1e984cb913
commit
fb12ad063e
1 changed files with 4 additions and 4 deletions
|
|
@ -37,7 +37,7 @@ func (p *Prog) writeOutput(srcfile string) {
|
||||||
// Write Go output: Go input with rewrites of C.xxx to _C_xxx.
|
// Write Go output: Go input with rewrites of C.xxx to _C_xxx.
|
||||||
fmt.Fprintf(fgo1, "// Created by cgo - DO NOT EDIT\n");
|
fmt.Fprintf(fgo1, "// Created by cgo - DO NOT EDIT\n");
|
||||||
fmt.Fprintf(fgo1, "//line %s:1\n", srcfile);
|
fmt.Fprintf(fgo1, "//line %s:1\n", srcfile);
|
||||||
printer.Fprint(fgo1, p.AST, 0, 8, nil);
|
printer.Fprint(fgo1, p.AST);
|
||||||
|
|
||||||
// Write second Go output: definitions of _C_xxx.
|
// Write second Go output: definitions of _C_xxx.
|
||||||
// In a separate file so that the import of "unsafe" does not
|
// In a separate file so that the import of "unsafe" does not
|
||||||
|
|
@ -49,7 +49,7 @@ func (p *Prog) writeOutput(srcfile string) {
|
||||||
|
|
||||||
for name, def := range p.Typedef {
|
for name, def := range p.Typedef {
|
||||||
fmt.Fprintf(fgo2, "type %s ", name);
|
fmt.Fprintf(fgo2, "type %s ", name);
|
||||||
printer.Fprint(fgo2, def, 0, 8, nil);
|
printer.Fprint(fgo2, def);
|
||||||
fmt.Fprintf(fgo2, "\n");
|
fmt.Fprintf(fgo2, "\n");
|
||||||
}
|
}
|
||||||
fmt.Fprintf(fgo2, "type _C_void [0]byte\n");
|
fmt.Fprintf(fgo2, "type _C_void [0]byte\n");
|
||||||
|
|
@ -64,7 +64,7 @@ func (p *Prog) writeOutput(srcfile string) {
|
||||||
for name, def := range p.Vardef {
|
for name, def := range p.Vardef {
|
||||||
fmt.Fprintf(fc, "#pragma dynld %s·_C_%s %s \"%s/%s_%s.so\"\n", p.Package, name, name, pkgroot, p.PackagePath, base);
|
fmt.Fprintf(fc, "#pragma dynld %s·_C_%s %s \"%s/%s_%s.so\"\n", p.Package, name, name, pkgroot, p.PackagePath, base);
|
||||||
fmt.Fprintf(fgo2, "var _C_%s ", name);
|
fmt.Fprintf(fgo2, "var _C_%s ", name);
|
||||||
printer.Fprint(fgo2, &ast.StarExpr{X: def.Go}, 0, 8, nil);
|
printer.Fprint(fgo2, &ast.StarExpr{X: def.Go});
|
||||||
fmt.Fprintf(fgo2, "\n");
|
fmt.Fprintf(fgo2, "\n");
|
||||||
}
|
}
|
||||||
fmt.Fprintf(fc, "\n");
|
fmt.Fprintf(fc, "\n");
|
||||||
|
|
@ -75,7 +75,7 @@ func (p *Prog) writeOutput(srcfile string) {
|
||||||
Name: &ast.Ident{Value: "_C_"+name},
|
Name: &ast.Ident{Value: "_C_"+name},
|
||||||
Type: def.Go,
|
Type: def.Go,
|
||||||
};
|
};
|
||||||
printer.Fprint(fgo2, d, 0, 8, nil);
|
printer.Fprint(fgo2, d);
|
||||||
fmt.Fprintf(fgo2, "\n");
|
fmt.Fprintf(fgo2, "\n");
|
||||||
|
|
||||||
if name == "CString" || name == "GoString" {
|
if name == "CString" || name == "GoString" {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue