| // Copyright 2014 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. |
| if runtime.Compiler != "gc" || runtime.GOOS == "nacl" { |
| err := os.Chdir(filepath.Join("fixedbugs", "issue9355.dir")) |
| out := run("go", "tool", "compile", "-S", "a.go") |
| // 6g/8g print the offset as dec, but 5g/9g print the offset as hex. |
| `rel 0\+\d t=1 \"\"\.x\+8\r?\n`, // y = &x.b |
| `rel 0\+\d t=1 \"\"\.x\+(28|1c)\r?\n`, // z = &x.d.q |
| `rel 0\+\d t=1 \"\"\.b\+5\r?\n`, // c = &b[5] |
| `rel 0\+\d t=1 \"\"\.x\+(88|58)\r?\n`, // w = &x.f[3].r |
| for _, p := range patterns { |
| if ok, err := regexp.Match(p, out); !ok || err != nil { |
| panic("can't find pattern " + p) |
| func run(cmd string, args ...string) []byte { |
| out, err := exec.Command(cmd, args...).CombinedOutput() |