mirror of
https://github.com/golang/go
synced 2024-11-14 14:40:23 -07:00
2baed3856d
In RET instruction, the operand is the return jump's target, which should be put in Prog.To. Add an action "buildrundir" to the test driver, which builds (compile+assemble+link) the code in a directory and runs the resulting binary. Fixes #23838. Change-Id: I7ebe7eda49024b40a69a24857322c5ca9c67babb Reviewed-on: https://go-review.googlesource.com/94175 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
33 lines
549 B
Go
33 lines
549 B
Go
// Copyright 2018 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package main
|
|
|
|
func f()
|
|
func leaf()
|
|
|
|
var f1called, f2called, f3called bool
|
|
|
|
func main() {
|
|
f()
|
|
if !f1called {
|
|
panic("f1 not called")
|
|
}
|
|
if !f2called {
|
|
panic("f2 not called")
|
|
}
|
|
leaf()
|
|
if !f3called {
|
|
panic("f3 not called")
|
|
}
|
|
}
|
|
|
|
func f1() { f1called = true }
|
|
func f2() { f2called = true }
|
|
func f3() { f3called = true }
|
|
|
|
func unreachable() {
|
|
panic("unreachable function called")
|
|
}
|