diff options
Diffstat (limited to 'src/cmd/6c/swt.c')
-rw-r--r-- | src/cmd/6c/swt.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/cmd/6c/swt.c b/src/cmd/6c/swt.c index b3f31b04d..9b2381ae9 100644 --- a/src/cmd/6c/swt.c +++ b/src/cmd/6c/swt.c @@ -232,6 +232,19 @@ outcode(void) Binit(&b, f, OWRITE); Bprint(&b, "%s\n", thestring); + if(nffi > 0) { + int i; + + if(package == nil) { + yyerror("#pragma ffi without #pragma package"); + package = "_ffi_"; + } + Bprint(&b, "\n$$ // ffi\n", thestring); + Bprint(&b, "package %s\n", package); + for(i=0; i<nffi; i++) + Bprint(&b, "//ffi %c %s %s %s\n", ffi[i].type, ffi[i].local, ffi[i].remote, ffi[i].path); + Bprint(&b, "$$\n\n$$\n\n"); + } Bprint(&b, "!\n"); outhist(&b); |