From bb60912fa15fda1519fc8a7737ba7f3da996b080 Mon Sep 17 00:00:00 2001 From: Ayke van Laethem Date: Thu, 7 Jun 2018 17:45:49 +0200 Subject: [PATCH] tgo: Print IR on panic (sometimes) --- tgo.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tgo.go b/tgo.go index b2fd317b..ced1ff16 100644 --- a/tgo.go +++ b/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 }