From eda6fe3572b2fb02c2a8c87892744d04fea87691 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Thu, 30 Apr 2020 01:40:37 +0000 Subject: [PATCH] Revert "cmd/compile: omit file:pos for non-existent, permission errors" This reverts commit 4f7053c87f9ebf3acab7669d380f53bdfba0566b. Reason for revert: Newly added test is failing on several builders. Change-Id: I22dcbfebf2f57735b2f479886bbeb623f95b132f Reviewed-on: https://go-review.googlesource.com/c/go/+/231043 Reviewed-by: Bryan C. Mills Reviewed-by: Emmanuel Odeke Run-TryBot: Bryan C. Mills TryBot-Result: Gobot Gobot --- src/cmd/compile/internal/gc/subr.go | 8 +--- test/fixedbugs/issue36437.go | 69 ----------------------------- 2 files changed, 1 insertion(+), 76 deletions(-) delete mode 100644 test/fixedbugs/issue36437.go diff --git a/src/cmd/compile/internal/gc/subr.go b/src/cmd/compile/internal/gc/subr.go index 6df9ffc66e..2bbc5e4ae1 100644 --- a/src/cmd/compile/internal/gc/subr.go +++ b/src/cmd/compile/internal/gc/subr.go @@ -60,15 +60,9 @@ func adderrorname(n *Node) { } func adderr(pos src.XPos, format string, args ...interface{}) { - msg := fmt.Sprintf(format, args...) - // Only add the position if we have a file. - // See issue golang.org/issue/11361. - if !strings.HasSuffix(msg, ": no such file or directory") && !strings.HasSuffix(msg, ": permission denied") { - msg = fmt.Sprintf("%v: %s", linestr(pos), msg) - } errors = append(errors, Error{ pos: pos, - msg: msg + "\n", + msg: fmt.Sprintf("%v: %s\n", linestr(pos), fmt.Sprintf(format, args...)), }) } diff --git a/test/fixedbugs/issue36437.go b/test/fixedbugs/issue36437.go deleted file mode 100644 index 356d016079..0000000000 --- a/test/fixedbugs/issue36437.go +++ /dev/null @@ -1,69 +0,0 @@ -// run - -// +build !nacl,!js - -// Copyright 2020 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. - -// Tests that when non-existent files are passed to the -// compiler, such as in: -// go tool compile foo -// we don't print the beginning position: -// foo:0: open foo: no such file or directory -// but instead omit it and print out: -// open foo: no such file or directory - -package main - -import ( - "fmt" - "io/ioutil" - "os" - "os/exec" - "path/filepath" - "runtime" -) - -func main() { - tmpDir, err := ioutil.TempDir("", "issue36437") - if err != nil { - panic(err) - } - defer os.RemoveAll(tmpDir) - - msgOrErr := func(msg []byte, err error) string { - if len(msg) == 0 && err != nil { - return err.Error() - } - return string(msg) - } - - // 1. Pass in a non-existent file. - output, err := exec.Command("go", "tool", "compile", "x.go").CombinedOutput() - want := "open x.go: no such file or directory\n" - if got := msgOrErr(output, err); got != want { - fmt.Printf("Expected an error, but got:\n\t%q\nwant:\n\t%q", got, want) - return - } - - if runtime.GOOS == "linux" && runtime.GOARCH == "amd64" { - // The Go Linux builders seem to be running under root, thus - // linux-amd64 doesn't seem to be respecting 0222 file permissions, - // and reads files with -W-*-W-*-W- permissions. - // Filed bug: https://golang.org/issues/38608 - return - } - - // 2. Invoke the compiler with a file that we don't have read permissions to. - path := filepath.Join(tmpDir, "p.go") - if err := ioutil.WriteFile(path, []byte("package p"), 0222); err != nil { - panic(err) - } - output, err = exec.Command("go", "tool", "compile", path).CombinedOutput() - want = fmt.Sprintf("open %s: permission denied\n", path) - if got := msgOrErr(output, err); got != want { - fmt.Printf("Expected an error, but got:\n\t%q\nwant:\n\t%q", got, want) - return - } -}