]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/internal/gc: show register dump before crashing on register left allocated
authorRuss Cox <rsc@golang.org>
Wed, 6 May 2015 16:22:05 +0000 (12:22 -0400)
committerRuss Cox <rsc@golang.org>
Mon, 11 May 2015 15:22:11 +0000 (15:22 +0000)
If you are using -h to get a stack trace at the site of the failure,
Yyerror will never return. Dump the register allocation sites
before calling Yyerror.

Change-Id: I51266c03e06cb5084c2eaa89b367b9ed85ba286a
Reviewed-on: https://go-review.googlesource.com/9788
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Dave Cheney <dave@cheney.net>
src/cmd/internal/gc/gsubr.go

index 9b75bb6109bb999211766692451e7fbc2dcea249..93e4852b6ff41669805f88297fad39f71bca9c70 100644 (file)
@@ -625,20 +625,20 @@ func gclean() {
        for r := Thearch.REGMIN; r <= Thearch.REGMAX; r++ {
                n := reg[r-Thearch.REGMIN]
                if n != 0 {
-                       Yyerror("reg %v left allocated", obj.Rconv(r))
                        if Debug['v'] != 0 {
                                Regdump()
                        }
+                       Yyerror("reg %v left allocated", obj.Rconv(r))
                }
        }
 
        for r := Thearch.FREGMIN; r <= Thearch.FREGMAX; r++ {
                n := reg[r-Thearch.REGMIN]
                if n != 0 {
-                       Yyerror("reg %v left allocated", obj.Rconv(r))
                        if Debug['v'] != 0 {
                                Regdump()
                        }
+                       Yyerror("reg %v left allocated", obj.Rconv(r))
                }
        }
 }