ir,build: pragma support (#97)

Adds support for arbitrary compiler directives.

Fixes #15
This commit is contained in:
Michael McLoughlin
2019-09-16 11:01:48 -07:00
committed by GitHub
parent 0bcbe82731
commit c8004ba627
14 changed files with 161 additions and 1 deletions

28
printer/stubs_test.go Normal file
View File

@@ -0,0 +1,28 @@
package printer_test
import (
"testing"
"github.com/mmcloughlin/avo/build"
"github.com/mmcloughlin/avo/printer"
)
func TestStubsPragmas(t *testing.T) {
ctx := build.NewContext()
ctx.Function("f")
ctx.Pragma("noescape")
ctx.Pragma("linkname f remote.f")
ctx.SignatureExpr("func(x *uint64)")
ctx.RET()
AssertPrintsLines(t, ctx, printer.NewStubs, []string{
"// Code generated by avo. DO NOT EDIT.",
"",
"package printer",
"",
"//go:noescape",
"//go:linkname f remote.f",
"func f(x *uint64)",
"",
})
}