aboutsummaryrefslogtreecommitdiff
path: root/test/defererrcheck.go
diff options
context:
space:
mode:
authorBryan C. Mills <bcmills@google.com>2019-10-16 20:41:53 +0000
committerBryan C. Mills <bcmills@google.com>2019-10-16 20:59:53 +0000
commitb76e6f88251712a21071d4ea11573bd8cdfa21de (patch)
tree8f61e6b95100c9ea5db743ed7934d0f253d3a58c /test/defererrcheck.go
parent2718789bc7937c58a7a65e53d9cc941b04682f99 (diff)
downloadgo-b76e6f88251712a21071d4ea11573bd8cdfa21de.tar.gz
go-b76e6f88251712a21071d4ea11573bd8cdfa21de.zip
Revert "cmd/compile, cmd/link, runtime: make defers low-cost through inline code and extra funcdata"
This reverts CL 190098. Reason for revert: broke several builders. Change-Id: I69161352f9ded02537d8815f259c4d391edd9220 Reviewed-on: https://go-review.googlesource.com/c/go/+/201519 Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Austin Clements <austin@google.com> Reviewed-by: Dan Scales <danscales@google.com>
Diffstat (limited to 'test/defererrcheck.go')
-rw-r--r--test/defererrcheck.go86
1 files changed, 0 insertions, 86 deletions
diff --git a/test/defererrcheck.go b/test/defererrcheck.go
deleted file mode 100644
index 5b90e58738..0000000000
--- a/test/defererrcheck.go
+++ /dev/null
@@ -1,86 +0,0 @@
-// errorcheck -0 -l -d=defer
-
-// Copyright 2019 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.
-
-// check that open-coded defers are used in expected situations
-
-package main
-
-import "fmt"
-
-var glob = 3
-
-func f1() {
-
- for i := 0; i < 10; i++ {
- fmt.Println("loop")
- }
- defer func() { // ERROR "open-coded defer in function f1"
- fmt.Println("defer")
- }()
-}
-
-func f2() {
- for {
- defer func() { // ERROR "heap-allocated defer in function f2"
- fmt.Println("defer1")
- }()
- if glob > 2 {
- break
- }
- }
- defer func() { // ERROR "stack-allocated defer in function f2"
- fmt.Println("defer2")
- }()
-}
-
-func f3() {
- defer func() { // ERROR "stack-allocated defer in function f3"
- fmt.Println("defer2")
- }()
- for {
- defer func() { // ERROR "heap-allocated defer in function f3"
- fmt.Println("defer1")
- }()
- if glob > 2 {
- break
- }
- }
-}
-
-func f4() {
- defer func() { // ERROR "open-coded defer in function f4"
- fmt.Println("defer")
- }()
-label:
- fmt.Println("goto loop")
- if glob > 2 {
- goto label
- }
-}
-
-func f5() {
-label:
- fmt.Println("goto loop")
- defer func() { // ERROR "heap-allocated defer in function f5"
- fmt.Println("defer")
- }()
- if glob > 2 {
- goto label
- }
-}
-
-func f6() {
-label:
- fmt.Println("goto loop")
- if glob > 2 {
- goto label
- }
- // The current analysis doesn't end a backward goto loop, so this defer is
- // considered to be inside a loop
- defer func() { // ERROR "heap-allocated defer in function f6"
- fmt.Println("defer")
- }()
-}