Commit b610a78b authored by Eric Clark's avatar Eric Clark Committed by Russ Cox

cgo: show preamble gcc errors

Fixes #1081

R=rsc
CC=golang-dev
https://golang.org/cl/2112046
parent dd0dec62
...@@ -204,6 +204,9 @@ func (p *Package) guessKinds(f *File) []*Name { ...@@ -204,6 +204,9 @@ func (p *Package) guessKinds(f *File) []*Name {
for _, line := range strings.Split(stderr, "\n", -1) { for _, line := range strings.Split(stderr, "\n", -1) {
if len(line) < 9 || line[0:9] != "cgo-test:" { if len(line) < 9 || line[0:9] != "cgo-test:" {
if len(line) > 8 && line[0:8] == "<stdin>:" {
fatal("gcc produced unexpected output:\n%s\non input:\n%s", line, b.Bytes())
}
continue continue
} }
line = line[9:] line = line[9:]
...@@ -439,8 +442,9 @@ func (p *Package) rewriteRef(f *File) { ...@@ -439,8 +442,9 @@ func (p *Package) rewriteRef(f *File) {
case "type": case "type":
if r.Name.Kind != "type" { if r.Name.Kind != "type" {
error(r.Pos(), "expression C.%s used as type", r.Name.Go) error(r.Pos(), "expression C.%s used as type", r.Name.Go)
} else {
expr = r.Name.Type.Go
} }
expr = r.Name.Type.Go
default: default:
if r.Name.Kind == "func" { if r.Name.Kind == "func" {
error(r.Pos(), "must call C.%s", r.Name.Go) error(r.Pos(), "must call C.%s", r.Name.Go)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment