mirror of
https://github.com/golang/go
synced 2024-11-26 10:08:23 -07:00
cmd/compile: attach correct line number for fallthru-return
Fixes #14646. Change-Id: I0bb82ed6d3533633cd8369ba37aa467948bbe155 Reviewed-on: https://go-review.googlesource.com/20381 Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
This commit is contained in:
parent
1264f6e2d4
commit
4c8589c328
@ -180,6 +180,7 @@ func buildssa(fn *Node) *ssa.Func {
|
||||
s.stmts(s.exitCode)
|
||||
m := s.mem()
|
||||
b := s.endBlock()
|
||||
b.Line = fn.Func.Endlineno
|
||||
b.Kind = ssa.BlockRet
|
||||
b.Control = m
|
||||
}
|
||||
|
23
test/fixedbugs/issue14646.go
Normal file
23
test/fixedbugs/issue14646.go
Normal file
@ -0,0 +1,23 @@
|
||||
// run
|
||||
|
||||
// Copyright 2016 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
|
||||
|
||||
import "runtime"
|
||||
|
||||
func main() {
|
||||
var file string
|
||||
var line int
|
||||
func() {
|
||||
defer func() {
|
||||
_, file, line, _ = runtime.Caller(1)
|
||||
}()
|
||||
}() // this is the expected line
|
||||
const EXPECTED = 18
|
||||
if line != EXPECTED {
|
||||
println("Expected line =", EXPECTED, "but got line =", line, "and file =", file)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user