]> Cypherpunks repositories - gostls13.git/commitdiff
gc: add GOEXPERIMENT=os.Error
authorRuss Cox <rsc@golang.org>
Wed, 2 Nov 2011 03:24:28 +0000 (23:24 -0400)
committerRuss Cox <rsc@golang.org>
Wed, 2 Nov 2011 03:24:28 +0000 (23:24 -0400)
This won't last long, I promise.

R=ken2
CC=golang-dev
https://golang.org/cl/5330066

src/cmd/gc/go.h
src/cmd/gc/lex.c
src/cmd/gc/subr.c

index 7d6ac08433d2c9b8220268321667bf55112dfc0c..cff01a11f8ab0eae0cfc1d5ef462ce9fb77b3cf5 100644 (file)
@@ -852,6 +852,7 @@ EXTERN      int     typecheckok;
 EXTERN int     compiling_runtime;
 
 EXTERN int     rune32;
+EXTERN int     oserror;
 
 /*
  *     y.tab.c
index 86492a53bcac90f7250ba02c8050fd8d6919747d..1dc00d70d3532679ebfce570f69779bab726f33f 100644 (file)
@@ -38,6 +38,7 @@ static struct {
        int *val;
 } exper[] = {
        {"rune32", &rune32},
+       {"os.Error", &oserror},
 };
 
 static void
index dc1d3146381790790a813196e1f745093dfb43cc..1d5c1aad2515977deb284600cd34ecac70ae9def 100644 (file)
@@ -2967,6 +2967,17 @@ mkpkg(Strlit *path)
        p->prefix = pathtoprefix(path->s);
        p->link = phash[h];
        phash[h] = p;
+       
+       // If the compiler was built with
+       //      GOEXPERIMENT=os.Error
+       // define os.Error as an alias for error.
+       // Terrible and won't last long, but useful for transitions.
+       if(oserror && strcmp(path->s, "os") == 0) {
+               Sym *s;
+               s = pkglookup("Error", p);
+               s->def = typenod(errortype);
+       }
+
        return p;
 }