Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/compile/internal: min/max inside Println "internal compiler error: mayCall" #60597

Closed
crisman opened this issue Jun 5, 2023 · 1 comment

Comments

@crisman
Copy link
Contributor

crisman commented Jun 5, 2023

What version of Go are you using (go version)?

https://go.dev/play/?v=gotip

With runtime.Version() of devel go1.21-ce8146ed33 Sat Jun 3 21:13:11 2023 +0000

Does this issue reproduce with the latest release?

No, min/max builtins are not present in older releases.

What operating system and processor architecture are you using (go env)?

https://go.dev/play/?v=gotip

What did you do?

https://go.dev/play/p/TAggd5aUk00?v=gotip

min() or max() inside a fmt.Println() where an int variable needs to convert to float.

	some_int := 10
	fmt.Println(max(1, 2.0, some_int))

What did you expect to see?

10
10

What did you see instead?

Click to expand: ./prog.go:12:17: internal compiler error: mayCall

./prog.go:12:17: internal compiler error: mayCall
.   MAX int tc(1) # prog.go:12:17
.   MAX-Args
.   .   CONV Implicit int tc(1) # prog.go:12:18
.   .   .   LITERAL-1 uint tc(1) # prog.go:12:18
.   .   LITERAL-2 int tc(1) # prog.go:12:21
.   .   NAME-main.some_int esc(no) Class:PAUTO Offset:0 OnStack Used int tc(1) # prog.go:7:2

goroutine 1 [running]:
runtime/debug.Stack()
    /usr/local/go/src/runtime/debug/stack.go:24 +0x5e
cmd/compile/internal/base.FatalfAt({0x5ed8e9?, 0x0?}, {0xd6fc13, 0xb}, {0xc0003e5d38, 0x1, 0x1})
    /usr/local/go/src/cmd/compile/internal/base/print.go:230 +0x1d7
cmd/compile/internal/walk.mayCall.func2({0xecd578, 0xc0000b8be0})
    /usr/local/go/src/cmd/compile/internal/walk/walk.go:308 +0x3ae
cmd/compile/internal/ir.Any.func1({0xecd578, 0xc0000b8be0})
    /usr/local/go/src/cmd/compile/internal/ir/visit.go:130 +0x2d
cmd/compile/internal/ir.(*ConvExpr).doChildren(0xc000120ab0, 0xc00062aa38)
    /usr/local/go/src/cmd/compile/internal/ir/node_gen.go:503 +0xac
cmd/compile/internal/ir.DoChildren(...)
    /usr/local/go/src/cmd/compile/internal/ir/visit.go:94
cmd/compile/internal/ir.Any.func1({0xecd938, 0xc000120ab0})
    /usr/local/go/src/cmd/compile/internal/ir/visit.go:130 +0x5f
cmd/compile/internal/ir.Any({0xecd938, 0xc000120ab0}, 0xc0005e52c0)
    /usr/local/go/src/cmd/compile/internal/ir/visit.go:132 +0xb3
cmd/compile/internal/walk.mayCall({0xecd938, 0xc000120ab0})
    /usr/local/go/src/cmd/compile/internal/walk/walk.go:299 +0x6c
cmd/compile/internal/walk.walkCall1(0xc0000b8fa0, 0xc0003e6b60)
    /usr/local/go/src/cmd/compile/internal/walk/expr.go:619 +0x337
cmd/compile/internal/walk.walkCall(0xc0000b8fa0, 0x2?)
    /usr/local/go/src/cmd/compile/internal/walk/expr.go:589 +0xb66
cmd/compile/internal/walk.walkExpr1({0xecd578, 0xc0000b8fa0}, 0xc0000b8fa0?)
    /usr/local/go/src/cmd/compile/internal/walk/expr.go:189 +0x3a9
cmd/compile/internal/walk.walkExpr({0xecd578, 0xc0000b8fa0}, 0xc0003e6b60)
    /usr/local/go/src/cmd/compile/internal/walk/expr.go:56 +0x2da
cmd/compile/internal/walk.dataWord(0xc0001203f0, 0xc0003e6b60)
    /usr/local/go/src/cmd/compile/internal/walk/convert.go:211 +0xdbd
cmd/compile/internal/walk.walkConvInterface(0xc0001203f0, 0xc0003e6b60)
    /usr/local/go/src/cmd/compile/internal/walk/convert.go:60 +0xc7d
cmd/compile/internal/walk.walkExpr1({0xecd938, 0xc0001203f0}, 0xc0001203f0?)
    /usr/local/go/src/cmd/compile/internal/walk/expr.go:224 +0x478
cmd/compile/internal/walk.walkExpr({0xecd938, 0xc0001203f0}, 0xc0003e6b60)
    /usr/local/go/src/cmd/compile/internal/walk/expr.go:56 +0x2da
cmd/compile/internal/walk.walkAssign(0xc0003e6b60, {0xece6b8, 0xc00062f040})
    /usr/local/go/src/cmd/compile/internal/walk/assign.go:72 +0xc65
cmd/compile/internal/walk.walkExpr1({0xece6b8, 0xc00062f040}, 0xc00062f040?)
    /usr/local/go/src/cmd/compile/internal/walk/expr.go:192 +0x37f
cmd/compile/internal/walk.walkExpr({0xece6b8, 0xc00062f040}, 0xc0003e6b60)
    /usr/local/go/src/cmd/compile/internal/walk/expr.go:56 +0x2da
cmd/compile/internal/walk.walkStmt({0xece6b8, 0xc00062f040?})
    /usr/local/go/src/cmd/compile/internal/walk/stmt.go:59 +0x87a
cmd/compile/internal/walk.walkStmtList(...)
    /usr/local/go/src/cmd/compile/internal/walk/stmt.go:175
cmd/compile/internal/walk.walkStmt({0xece238, 0xc000613740?})
    /usr/local/go/src/cmd/compile/internal/walk/stmt.go:98 +0x129d
cmd/compile/internal/walk.appendWalkStmt(0xc0003e7408, {0xece238, 0xc000613740})
    /usr/local/go/src/cmd/compile/internal/walk/walk.go:258 +0x67
cmd/compile/internal/walk.slicelit(0x0, 0xc000106b80, {0xecd278?, 0xc000632210}, 0xecd938?)
    /usr/local/go/src/cmd/compile/internal/walk/complit.go:409 +0xaf0
cmd/compile/internal/walk.anylit({0xece0b8, 0xc000106b80}, {0xecd278?, 0xc000632210}, 0xc0003e7008?)
    /usr/local/go/src/cmd/compile/internal/walk/complit.go:600 +0x48f
cmd/compile/internal/walk.oaslit(...)
    /usr/local/go/src/cmd/compile/internal/walk/complit.go:649
cmd/compile/internal/walk.walkAssign(0xc0003e7408, {0xece6b8, 0xc00062eeb0})
    /usr/local/go/src/cmd/compile/internal/walk/assign.go:57 +0x84b
cmd/compile/internal/walk.walkExpr1({0xece6b8, 0xc00062eeb0}, 0xc00062eeb0?)
    /usr/local/go/src/cmd/compile/internal/walk/expr.go:192 +0x37f
cmd/compile/internal/walk.walkExpr({0xece6b8, 0xc00062eeb0}, 0xc0003e7408)
    /usr/local/go/src/cmd/compile/internal/walk/expr.go:56 +0x2da
cmd/compile/internal/walk.appendWalkStmt(...)
    /usr/local/go/src/cmd/compile/internal/walk/walk.go:256
cmd/compile/internal/walk.ascompatee(0x16, {0xc0005e4f70?, 0x1, 0x2?}, {0xc0005e4fb0?, 0x1, 0xecd578?})
    /usr/local/go/src/cmd/compile/internal/walk/assign.go:375 +0x7f2
cmd/compile/internal/walk.walkAssignList(0xc0003e7838, 0xc0006301e0)
    /usr/local/go/src/cmd/compile/internal/walk/assign.go:147 +0x146
cmd/compile/internal/walk.walkExpr1({0xece3b8, 0xc0006301e0}, 0xc0006301e0?)
    /usr/local/go/src/cmd/compile/internal/walk/expr.go:196 +0x2a8
cmd/compile/internal/walk.walkExpr({0xece3b8, 0xc0006301e0}, 0xc0003e7838)
    /usr/local/go/src/cmd/compile/internal/walk/expr.go:56 +0x2da
cmd/compile/internal/walk.walkStmt({0xece3b8, 0xc0006301e0?})
    /usr/local/go/src/cmd/compile/internal/walk/stmt.go:59 +0x87a
cmd/compile/internal/walk.walkStmtList(...)
    /usr/local/go/src/cmd/compile/internal/walk/stmt.go:175
cmd/compile/internal/walk.Walk(0xc0003bbe40)
    /usr/local/go/src/cmd/compile/internal/walk/walk.go:43 +0x14d
cmd/compile/internal/gc.prepareFunc(0xc0003bbe40)
    /usr/local/go/src/cmd/compile/internal/gc/compile.go:105 +0xf9
cmd/compile/internal/gc.enqueueFunc(0xc0003bbe40)
    /usr/local/go/src/cmd/compile/internal/gc/compile.go:71 +0x307
cmd/compile/internal/gc.Main(0xda2b78)
    /usr/local/go/src/cmd/compile/internal/gc/main.go:338 +0x14dd
main.main()
    /usr/local/go/src/cmd/compile/main.go:57 +0xf9


Go build failed.
@cuonglm
Copy link
Member

cuonglm commented Jun 5, 2023

Duplicated of #60582

@cuonglm cuonglm closed this as completed Jun 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants