mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile: move Issue 16214 test, delete asm_test file
Move the Issue16214 test in the fixedbugs_test.go file, and delete the now empty asm_test.go file. Change-Id: I2a0c72bd36f0359b7baf75b5d1ba647cc84feb46 Reviewed-on: https://go-review.googlesource.com/106836 Run-TryBot: Alberto Donizetti <alb.donizetti@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Giovanni Bajo <rasky@develer.com>
This commit is contained in:
parent
1898fce1e7
commit
93f95a30a3
2 changed files with 43 additions and 51 deletions
|
|
@ -1,50 +0,0 @@
|
||||||
// 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 gc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"internal/testenv"
|
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
|
||||||
"os/exec"
|
|
||||||
"path/filepath"
|
|
||||||
"strings"
|
|
||||||
"testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TestLineNumber checks to make sure the generated assembly has line numbers
|
|
||||||
// see issue #16214
|
|
||||||
func TestLineNumber(t *testing.T) {
|
|
||||||
testenv.MustHaveGoBuild(t)
|
|
||||||
dir, err := ioutil.TempDir("", "TestLineNumber")
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("could not create directory: %v", err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(dir)
|
|
||||||
|
|
||||||
src := filepath.Join(dir, "x.go")
|
|
||||||
err = ioutil.WriteFile(src, []byte(issue16214src), 0644)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("could not write file: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
cmd := exec.Command(testenv.GoToolPath(t), "tool", "compile", "-S", "-o", filepath.Join(dir, "out.o"), src)
|
|
||||||
out, err := cmd.CombinedOutput()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("fail to run go tool compile: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if strings.Contains(string(out), "unknown line number") {
|
|
||||||
t.Errorf("line number missing in assembly:\n%s", out)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var issue16214src = `
|
|
||||||
package main
|
|
||||||
|
|
||||||
func Mod32(x uint32) uint32 {
|
|
||||||
return x % 3 // frontend rewrites it as HMUL with 2863311531, the LITERAL node has unknown Pos
|
|
||||||
}
|
|
||||||
`
|
|
||||||
|
|
@ -4,7 +4,15 @@
|
||||||
|
|
||||||
package gc
|
package gc
|
||||||
|
|
||||||
import "testing"
|
import (
|
||||||
|
"internal/testenv"
|
||||||
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
|
"os/exec"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
type T struct {
|
type T struct {
|
||||||
x [2]int64 // field that will be clobbered. Also makes type not SSAable.
|
x [2]int64 // field that will be clobbered. Also makes type not SSAable.
|
||||||
|
|
@ -48,3 +56,37 @@ func TestIssue15854b(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Test that the generated assembly has line numbers (Issue #16214).
|
||||||
|
func TestIssue16214(t *testing.T) {
|
||||||
|
testenv.MustHaveGoBuild(t)
|
||||||
|
dir, err := ioutil.TempDir("", "TestLineNumber")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("could not create directory: %v", err)
|
||||||
|
}
|
||||||
|
defer os.RemoveAll(dir)
|
||||||
|
|
||||||
|
src := filepath.Join(dir, "x.go")
|
||||||
|
err = ioutil.WriteFile(src, []byte(issue16214src), 0644)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("could not write file: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd := exec.Command(testenv.GoToolPath(t), "tool", "compile", "-S", "-o", filepath.Join(dir, "out.o"), src)
|
||||||
|
out, err := cmd.CombinedOutput()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("fail to run go tool compile: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if strings.Contains(string(out), "unknown line number") {
|
||||||
|
t.Errorf("line number missing in assembly:\n%s", out)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var issue16214src = `
|
||||||
|
package main
|
||||||
|
|
||||||
|
func Mod32(x uint32) uint32 {
|
||||||
|
return x % 3 // frontend rewrites it as HMUL with 2863311531, the LITERAL node has unknown Pos
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue