Commit 0b2683d1 authored by Russ Cox's avatar Russ Cox

do not insert implicit "return;" in empty function body

R=ken
OCL=32239
CL=32239
parent b388d840
...@@ -636,7 +636,7 @@ funclit1(Node *ntype, NodeList *body) ...@@ -636,7 +636,7 @@ funclit1(Node *ntype, NodeList *body)
n->nname = f; n->nname = f;
n->type = ft; n->type = ft;
if(body == nil) if(body == nil)
body = list1(nod(ORETURN, N, N)); body = list1(nod(OEMPTY, N, N));
n->nbody = body; n->nbody = body;
compile(n); compile(n);
funcdepth--; funcdepth--;
......
...@@ -1196,7 +1196,7 @@ fnbody: ...@@ -1196,7 +1196,7 @@ fnbody:
{ {
$$ = $2; $$ = $2;
if($$ == nil) if($$ == nil)
$$ = list1(nod(ORETURN, N, N)); $$ = list1(nod(OEMPTY, N, N));
yyoptsemi(0); yyoptsemi(0);
} }
......
...@@ -18,6 +18,6 @@ func g (x int) float ; // BUG this doesn't ...@@ -18,6 +18,6 @@ func g (x int) float ; // BUG this doesn't
func g (x int) float { return 0.0 } func g (x int) float { return 0.0 }
func h (x int) (u int, v int) ; // BUG this doesn't func h (x int) (u int, v int) ; // BUG this doesn't
func h (x int) (u int, v int) {} func h (x int) (u int, v int) { return; }
func main() {} func main() {}
...@@ -7,9 +7,11 @@ ...@@ -7,9 +7,11 @@
package main package main
func f1() (x int, y float) { func f1() (x int, y float) {
return;
} }
func f2 (x int, y float) { func f2 (x int, y float) {
return;
} }
func main() { func main() {
......
// errchk $G $D/$F.go
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
func f() int { } // ERROR "return"
func g() (foo int) { } // ERROR "return"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment