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)
n->nname = f;
n->type = ft;
if(body == nil)
body = list1(nod(ORETURN, N, N));
body = list1(nod(OEMPTY, N, N));
n->nbody = body;
compile(n);
funcdepth--;
......
......@@ -1196,7 +1196,7 @@ fnbody:
{
$$ = $2;
if($$ == nil)
$$ = list1(nod(ORETURN, N, N));
$$ = list1(nod(OEMPTY, N, N));
yyoptsemi(0);
}
......
......@@ -18,6 +18,6 @@ func g (x int) float ; // BUG this doesn't
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) {}
func h (x int) (u int, v int) { return; }
func main() {}
......@@ -7,9 +7,11 @@
package main
func f1() (x int, y float) {
return;
}
func f2 (x int, y float) {
return;
}
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