diff options
author | Keith Randall <khr@golang.org> | 2014-09-05 10:04:16 -0400 |
---|---|---|
committer | Keith Randall <khr@golang.org> | 2014-09-05 10:04:16 -0400 |
commit | 3f94b79d4827411c92a95d8e3c76049a3784e3e0 (patch) | |
tree | eac953b858b2d8f49e96e9853740e879663975b4 /src/cmd | |
parent | 1dba806d6a948976a2ecdb08a7c4839ff0a42766 (diff) | |
download | go-3f94b79d4827411c92a95d8e3c76049a3784e3e0.tar.gz |
runtime: convert panic/recover to Go
created panic1.go just so diffs were available.
After this CL is in, I'd like to move panic.go -> defer.go
and panic1.go -> panic.go.
LGTM=rsc
R=rsc, khr
CC=golang-codereviews
https://codereview.appspot.com/133530045
Committer: Russ Cox <rsc@golang.org>
Diffstat (limited to 'src/cmd')
-rw-r--r-- | src/cmd/api/goapi.go | 1 | ||||
-rw-r--r-- | src/cmd/gc/builtin.c | 4 | ||||
-rw-r--r-- | src/cmd/gc/popt.c | 2 | ||||
-rw-r--r-- | src/cmd/gc/runtime.go | 4 | ||||
-rw-r--r-- | src/cmd/gc/walk.c | 4 |
5 files changed, 8 insertions, 7 deletions
diff --git a/src/cmd/api/goapi.go b/src/cmd/api/goapi.go index 18c36bb17..7e8f85848 100644 --- a/src/cmd/api/goapi.go +++ b/src/cmd/api/goapi.go @@ -381,6 +381,7 @@ func (w *Walker) parseFile(dir, file string) (*ast.File, error) { src := "package runtime; type (" + " _defer struct{};" + " _func struct{};" + + " _panic struct{};" + " _select struct{}; " + " _type struct{};" + " alg struct{};" + diff --git a/src/cmd/gc/builtin.c b/src/cmd/gc/builtin.c index c5bce2ead..60b7c2f97 100644 --- a/src/cmd/gc/builtin.c +++ b/src/cmd/gc/builtin.c @@ -9,8 +9,8 @@ char *runtimeimport = "func @\"\".throwreturn ()\n" "func @\"\".throwinit ()\n" "func @\"\".panicwrap (? string, ? string, ? string)\n" - "func @\"\".panic (? interface {})\n" - "func @\"\".recover (? *int32) (? interface {})\n" + "func @\"\".gopanic (? interface {})\n" + "func @\"\".gorecover (? *int32) (? interface {})\n" "func @\"\".printbool (? bool)\n" "func @\"\".printfloat (? float64)\n" "func @\"\".printint (? int64)\n" diff --git a/src/cmd/gc/popt.c b/src/cmd/gc/popt.c index c8d60c5ad..993bb2482 100644 --- a/src/cmd/gc/popt.c +++ b/src/cmd/gc/popt.c @@ -49,7 +49,7 @@ noreturn(Prog *p) symlist[0] = pkglookup("panicindex", runtimepkg); symlist[1] = pkglookup("panicslice", runtimepkg); symlist[2] = pkglookup("throwinit", runtimepkg); - symlist[3] = pkglookup("panic", runtimepkg); + symlist[3] = pkglookup("gopanic", runtimepkg); symlist[4] = pkglookup("panicwrap", runtimepkg); symlist[5] = pkglookup("throwreturn", runtimepkg); symlist[6] = pkglookup("selectgo", runtimepkg); diff --git a/src/cmd/gc/runtime.go b/src/cmd/gc/runtime.go index 646cb68aa..128fd1a31 100644 --- a/src/cmd/gc/runtime.go +++ b/src/cmd/gc/runtime.go @@ -20,8 +20,8 @@ func throwreturn() func throwinit() func panicwrap(string, string, string) -func panic(interface{}) -func recover(*int32) interface{} +func gopanic(interface{}) +func gorecover(*int32) interface{} func printbool(bool) func printfloat(float64) diff --git a/src/cmd/gc/walk.c b/src/cmd/gc/walk.c index 30c139200..0de37b87f 100644 --- a/src/cmd/gc/walk.c +++ b/src/cmd/gc/walk.c @@ -543,11 +543,11 @@ walkexpr(Node **np, NodeList **init) goto ret; case OPANIC: - n = mkcall("panic", T, init, n->left); + n = mkcall("gopanic", T, init, n->left); goto ret; case ORECOVER: - n = mkcall("recover", n->type, init, nod(OADDR, nodfp, N)); + n = mkcall("gorecover", n->type, init, nod(OADDR, nodfp, N)); goto ret; case OLITERAL: |