]> Cypherpunks repositories - gostls13.git/commitdiff
gc: do not treat .6 different from .a anymore
authorRuss Cox <rsc@golang.org>
Wed, 27 Jan 2010 00:12:50 +0000 (16:12 -0800)
committerRuss Cox <rsc@golang.org>
Wed, 27 Jan 2010 00:12:50 +0000 (16:12 -0800)
R=ken2
CC=golang-dev
https://golang.org/cl/195050

src/cmd/gc/lex.c

index 7e2896822e32c4787018fad126db536ecb99fce0..8d67b8b2d9659810d59176787ef5417758bd1217 100644 (file)
@@ -279,7 +279,7 @@ void
 importfile(Val *f, int line)
 {
        Biobuf *imp;
-       char *file, *p;
+       char *file;
        int32 c;
        int len;
        Strlit *path;
@@ -301,9 +301,6 @@ importfile(Val *f, int line)
                return;
        }
 
-       if(!findpkg(f->u.sval))
-               fatal("can't find import: %Z", f->u.sval);
-
        path = f->u.sval;
        if(islocalname(path)) {
                snprint(cleanbuf, sizeof cleanbuf, "%s/%s", pathname, path->s);
@@ -311,6 +308,9 @@ importfile(Val *f, int line)
                path = strlit(cleanbuf);
        }
 
+       if(!findpkg(path))
+               fatal("can't find import: %Z", f->u.sval);
+
        importpkg = mkpkg(path);
 
        imp = Bopen(namebuf, OREAD);
@@ -322,17 +322,12 @@ importfile(Val *f, int line)
        if(len > 2 && namebuf[len-2] == '.' && namebuf[len-1] == 'a') {
                if(!skiptopkgdef(imp))
                        fatal("import not package file: %s", namebuf);
-
-               // assume .a files move (get installed)
-               // so don't record the full path.
-               p = file + len - f->u.sval->len - 2;
-               linehist(p, -1, 1);     // acts as #pragma lib
-       } else {
-               // assume .6 files don't move around
-               // so do record the full path
-               linehist(file, -1, 0);
        }
 
+       // assume files move (get installed)
+       // so don't record the full path.
+       linehist(file + len - path->len - 2, -1, 1);    // acts as #pragma lib
+
        /*
         * position the input right
         * after $$ and return