diff options
author | Michael Stapelberg <michael@stapelberg.de> | 2013-03-23 11:28:53 +0100 |
---|---|---|
committer | Michael Stapelberg <michael@stapelberg.de> | 2013-03-23 11:28:53 +0100 |
commit | b39e15dde5ec7b96c15da9faf4ab5892501c1aae (patch) | |
tree | 718cede1f6ca97d082c6c40b7dc3f4f6148253c0 /src/cmd/gc/go.h | |
parent | 04b08da9af0c450d645ab7389d1467308cfc2db8 (diff) | |
download | golang-upstream/1.1_hg20130323.tar.gz |
Imported Upstream version 1.1~hg20130323upstream/1.1_hg20130323
Diffstat (limited to 'src/cmd/gc/go.h')
-rw-r--r-- | src/cmd/gc/go.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/cmd/gc/go.h b/src/cmd/gc/go.h index f86c152f2..6be0ec8c9 100644 --- a/src/cmd/gc/go.h +++ b/src/cmd/gc/go.h @@ -268,6 +268,7 @@ struct Node uchar addrtaken; // address taken, even if not moved to heap uchar dupok; // duplicate definitions ok (for func) schar likely; // likeliness of if statement + uchar hasbreak; // has break statement // most nodes Type* type; @@ -368,6 +369,7 @@ struct Sym uchar sym; // huffman encoding in object file Sym* link; int32 npkg; // number of imported packages with this name + uint32 uniqgen; // saved and restored by dcopy Pkg* pkg; @@ -450,6 +452,7 @@ enum OCALLFUNC, // f() OCALLMETH, // t.Method() OCALLINTER, // err.Error() + OCALLPART, // t.Method (without ()) OCAP, // cap OCLOSE, // close OCLOSURE, // f = func() { etc } @@ -562,6 +565,7 @@ enum OITAB, // itable word of an interface value. OCLOSUREVAR, // variable reference at beginning of closure function OCFUNC, // reference to c function pointer (not go func value) + OCHECKNOTNIL, // emit code to ensure pointer/interface not nil // arch-specific registers OREGISTER, // a register, such as AX. @@ -987,7 +991,8 @@ Node* closurebody(NodeList *body); void closurehdr(Node *ntype); void typecheckclosure(Node *func, int top); Node* walkclosure(Node *func, NodeList **init); -void walkcallclosure(Node *n, NodeList **init); +void typecheckpartialcall(Node*, Node*); +Node* walkpartialcall(Node*, NodeList**); /* * const.c @@ -1363,6 +1368,7 @@ Node* typecheck(Node **np, int top); void typechecklist(NodeList *l, int top); Node* typecheckdef(Node *n); void copytype(Node *n, Type *t); +void checkreturn(Node*); void queuemethod(Node *n); /* @@ -1416,7 +1422,8 @@ EXTERN Node* nodfp; int anyregalloc(void); void betypeinit(void); void bgen(Node *n, int true, int likely, Prog *to); -void checkref(Node*); +void checkref(Node *n, int force); +void checknotnil(Node*, NodeList**); void cgen(Node*, Node*); void cgen_asop(Node *n); void cgen_call(Node *n, int proc); |