Commit f68c23e2 authored by Ian Lance Taylor's avatar Ian Lance Taylor

cmd/cgo: don't let #cgo directives mess up line numbering

Fixes #5272.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/13498046
parent 0ba7ffe2
package main
/*
#cgo LDFLAGS: -c
void test() {
xxx; // This is line 7.
}
*/
import "C"
func main() {
C.test()
}
# Copyright 2013 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 go tool cgo err1.go >errs 2>&1; then
echo 1>&2 misc/cgo/errors/test.bash: BUG: expected cgo to fail but it succeeded
exit 1
fi
if ! test -s errs; then
echo 1>&2 misc/cgo/errors/test.bash: BUG: expected error output but saw none
exit 1
fi
if ! fgrep err1.go:7 errs >/dev/null 2>&1; then
echo 1>&2 misc/cgo/errors/test.bash: BUG: expected error on line 7 but saw:
cat 1>&2 errs
exit 1
fi
rm -rf errs _obj
exit 0
......@@ -76,6 +76,8 @@ func (f *File) DiscardCgoDirectives() {
l := strings.TrimSpace(line)
if len(l) < 5 || l[:4] != "#cgo" || !unicode.IsSpace(rune(l[4])) {
linesOut = append(linesOut, line)
} else {
linesOut = append(linesOut, "")
}
}
f.Preamble = strings.Join(linesOut, "\n")
......
......@@ -145,6 +145,12 @@ esac
go run main.go || exit 1
) || exit $?
[ "$CGO_ENABLED" != 1 ] ||
[ "$GOHOSTOS" == windows ] ||
(xcd ../misc/cgo/errors
./test.bash || exit 1
) || exit $?
(xcd ../doc/progs
time ./run || exit 1
) || exit $?
......
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