tweaks & tests of last bug fix too.
R=ken2
CC=golang-dev
https://golang.org/cl/
1207044
redo:
lno = setlineno(n);
if(n->sym) {
+ if(n->op == ONAME && n->etype != 0) {
+ yyerror("use of builtin %S not in function call", n->sym);
+ goto error;
+ }
walkdef(n);
if(n->op == ONONAME)
goto error;
if(n->op == ONONAME) {
if(!n->diag) {
n->diag = 1;
- yyerrorl(n->lineno, "undefined: %S", n->sym);
+ if(n->lineno != 0)
+ lineno = n->lineno;
+ yyerror("undefined: %S", n->sym);
}
return;
}
f int;
}
-var _ = T{f: 1}
-
// 6g used to get confused by the f:1 above
// and allow uses of f that would be silently
// dropped during the compilation.
var _ = f; // ERROR "undefined"
+var _ = T{f: 1}
+
--- /dev/null
+// errchk $G $D/$F.go
+
+// Copyright 2010 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 main() {
+ _ = asdf // ERROR "undefined: asdf"
+
+ new = 1 // ERROR "use of builtin new not in function call"
+}
+