tgo: Print IR on panic (sometimes)

Этот коммит содержится в:
Ayke van Laethem 2018-06-07 17:45:49 +02:00
родитель cafdcecb60
коммит bb60912fa1
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: E97FF5335DFDFDED

14
tgo.go
Просмотреть файл

@ -1601,10 +1601,16 @@ func Compile(pkgName, runtimePath, outpath, target string, printIR bool) error {
}
// Compile Go code to IR.
parseErr := c.Parse(pkgName, buildTags)
if printIR {
fmt.Println(c.IR())
}
parseErr := func() error {
if printIR {
// Run this even if c.Parse() panics.
defer func() {
fmt.Println("IR until the error:")
fmt.Println(c.IR())
}()
}
return c.Parse(pkgName, buildTags)
}()
if parseErr != nil {
return parseErr
}