From 48e05ee749256a6c618eff3ab0bb64a60a9901be Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Thu, 17 Aug 2023 01:53:16 -0700 Subject: [PATCH] cmd/compile/internal/pkginit: use typecheck.LookupRuntime for asan Change-Id: Ie9c90aa4560c982902738659737ae125cfcb6ba9 Reviewed-on: https://go-review.googlesource.com/c/go/+/520397 Run-TryBot: Matthew Dempsky Reviewed-by: Cuong Manh Le Auto-Submit: Matthew Dempsky TryBot-Result: Gopher Robot Reviewed-by: Dmitri Shuralyov --- src/cmd/compile/internal/pkginit/init.go | 9 +-------- src/cmd/compile/internal/typecheck/_builtin/runtime.go | 2 ++ src/cmd/compile/internal/typecheck/builtin.go | 1 + 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/cmd/compile/internal/pkginit/init.go b/src/cmd/compile/internal/pkginit/init.go index 4636c740e2..7d2e4ce076 100644 --- a/src/cmd/compile/internal/pkginit/init.go +++ b/src/cmd/compile/internal/pkginit/init.go @@ -123,14 +123,7 @@ func MakeTask() { // Call runtime.asanregisterglobals function to poison redzones. // runtime.asanregisterglobals(unsafe.Pointer(&globals[0]), ni) - // - // TODO(mdempsky): Move into typecheck builtins. - asanf := ir.NewFunc(src.NoXPos, src.NoXPos, ir.Pkgs.Runtime.Lookup("asanregisterglobals"), - types.NewSignature(nil, []*types.Field{ - types.NewField(base.Pos, nil, types.Types[types.TUNSAFEPTR]), - types.NewField(base.Pos, nil, types.Types[types.TUINTPTR]), - }, nil)) - asancall := ir.NewCallExpr(base.Pos, ir.OCALL, asanf.Nname, nil) + asancall := ir.NewCallExpr(base.Pos, ir.OCALL, typecheck.LookupRuntime("asanregisterglobals"), nil) asancall.Args.Append(typecheck.ConvNop(typecheck.NodAddr( ir.NewIndexExpr(base.Pos, globals, ir.NewInt(base.Pos, 0))), types.Types[types.TUNSAFEPTR])) asancall.Args.Append(typecheck.DefaultLit(ir.NewInt(base.Pos, int64(ni)), types.Types[types.TUINTPTR])) diff --git a/src/cmd/compile/internal/typecheck/_builtin/runtime.go b/src/cmd/compile/internal/typecheck/_builtin/runtime.go index 2e1e94bbd7..850873dfa7 100644 --- a/src/cmd/compile/internal/typecheck/_builtin/runtime.go +++ b/src/cmd/compile/internal/typecheck/_builtin/runtime.go @@ -280,3 +280,5 @@ var x86HasSSE41 bool var x86HasFMA bool var armHasVFPv4 bool var arm64HasATOMICS bool + +func asanregisterglobals(unsafe.Pointer, uintptr) diff --git a/src/cmd/compile/internal/typecheck/builtin.go b/src/cmd/compile/internal/typecheck/builtin.go index bf87b4dec5..48c27566e5 100644 --- a/src/cmd/compile/internal/typecheck/builtin.go +++ b/src/cmd/compile/internal/typecheck/builtin.go @@ -231,6 +231,7 @@ var runtimeDecls = [...]struct { {"x86HasFMA", varTag, 6}, {"armHasVFPv4", varTag, 6}, {"arm64HasATOMICS", varTag, 6}, + {"asanregisterglobals", funcTag, 122}, } func runtimeTypes() []*types.Type { -- 2.50.0