aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCuong Manh Le <cuong.manhle.vn@gmail.com>2023-04-13 09:31:41 +0700
committerCuong Manh Le <cuong.manhle.vn@gmail.com>2023-04-14 17:57:49 +0000
commit47e2d7495fabaae8cfe2e1a0f0ff1e38f6e7b851 (patch)
treecb2918ed4b02a1ff69a8b54c37a3cf44e04126fb
parent20c349e5344152b56145ef6ebb649f431bdb2c90 (diff)
downloadgo-47e2d7495fabaae8cfe2e1a0f0ff1e38f6e7b851.tar.xz
cmd/compile: move unsafe operation out of EvalConst
So future CLs can get rid of EvalConst entirely. Change-Id: Ic8e147fd76e53c002a6ceda2fb3be979459bf865 Reviewed-on: https://go-review.googlesource.com/c/go/+/484315 Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com> Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Keith Randall <khr@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
-rw-r--r--src/cmd/compile/internal/typecheck/const.go4
-rw-r--r--src/cmd/compile/internal/typecheck/typecheck.go2
2 files changed, 1 insertions, 5 deletions
diff --git a/src/cmd/compile/internal/typecheck/const.go b/src/cmd/compile/internal/typecheck/const.go
index 060053bc8d..11386f6f9a 100644
--- a/src/cmd/compile/internal/typecheck/const.go
+++ b/src/cmd/compile/internal/typecheck/const.go
@@ -496,10 +496,6 @@ func EvalConst(n ir.Node) ir.Node {
}
}
- case ir.OALIGNOF, ir.OOFFSETOF, ir.OSIZEOF:
- n := n.(*ir.UnaryExpr)
- return OrigInt(n, evalunsafe(n))
-
case ir.OREAL:
n := n.(*ir.UnaryExpr)
nl := n.X
diff --git a/src/cmd/compile/internal/typecheck/typecheck.go b/src/cmd/compile/internal/typecheck/typecheck.go
index e160265d49..51de4700a1 100644
--- a/src/cmd/compile/internal/typecheck/typecheck.go
+++ b/src/cmd/compile/internal/typecheck/typecheck.go
@@ -608,7 +608,7 @@ func typecheck1(n ir.Node, top int) ir.Node {
case ir.OALIGNOF, ir.OOFFSETOF, ir.OSIZEOF:
n := n.(*ir.UnaryExpr)
n.SetType(types.Types[types.TUINTPTR])
- return n
+ return OrigInt(n, evalunsafe(n))
case ir.OCAP, ir.OLEN:
n := n.(*ir.UnaryExpr)