+++ /dev/null
-// 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
-}
-`
package gc
-import "testing"
+import (
+ "internal/testenv"
+ "io/ioutil"
+ "os"
+ "os/exec"
+ "path/filepath"
+ "strings"
+ "testing"
+)
type T struct {
x [2]int64 // field that will be clobbered. Also makes type not SSAable.
}
}
}
+
+// 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
+}
+`