cgo: don't crash on import "C" without comment

This doesn't make a lot of sense, but we shouldn't crash on it.
Этот коммит содержится в:
Ayke van Laethem 2019-05-10 17:28:01 +02:00 коммит произвёл Ron Evans
родитель 99587fe073
коммит 4619207f99
2 изменённых файлов: 8 добавлений и 2 удалений

Просмотреть файл

@ -145,8 +145,12 @@ func (p *Package) processCgo(filename string, f *ast.File, cflags []string) []er
// source location. // source location.
info.importCPos = spec.Path.ValuePos info.importCPos = spec.Path.ValuePos
pos := info.fset.PositionFor(genDecl.Doc.Pos(), true) pos := genDecl.Pos()
errs := info.parseFragment(cgoComment+cgoTypes, cflags, pos.Filename, pos.Line) if genDecl.Doc != nil {
pos = genDecl.Doc.Pos()
}
position := info.fset.PositionFor(pos, true)
errs := info.parseFragment(cgoComment+cgoTypes, cflags, position.Filename, position.Line)
if errs != nil { if errs != nil {
return errs return errs
} }

2
testdata/cgo/main.go предоставленный
Просмотреть файл

@ -7,6 +7,8 @@ int mul(int, int);
*/ */
import "C" import "C"
import "C"
import "unsafe" import "unsafe"
func main() { func main() {