]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/ld: fix line numbers when using fieldtrack
authorRuss Cox <rsc@golang.org>
Tue, 25 Jun 2013 21:23:33 +0000 (17:23 -0400)
committerRuss Cox <rsc@golang.org>
Tue, 25 Jun 2013 21:23:33 +0000 (17:23 -0400)
USEFIELD is a special kind of NOP, so treat it like a NOP
when generating the pc-ln table.

There are more invasive fixes that could be applied here.
I am going for minimum number of lines changed.

The smallest test case we know of is five distinct Go files
in four packages, and the bug only happens with
GOEXPERIMENT=fieldtrack enabled, which we don't
normally build with, so the test would never run
meaningfully anyway.

Fixes #5762.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/10495044

src/cmd/ld/lib.c

index 87af5a28ea89be6839ead64dfea60249a0bf51a3..50e41ff776c96109d4c3be313bd2e1a2e60f09d5 100644 (file)
@@ -1355,7 +1355,7 @@ pclntab(void)
        oldlc = 0;
        for(cursym = textp; cursym != nil; cursym = cursym->next) {
                for(p = cursym->text; p != P; p = p->link) {
-                       if(p->line == oldlc || p->as == ATEXT || p->as == ANOP) {
+                       if(p->line == oldlc || p->as == ATEXT || p->as == ANOP || p->as == AUSEFIELD) {
                                if(debug['O'])
                                        Bprint(&bso, "%6llux %P\n",
                                                (vlong)p->pc, p);