}
ret:
- norig = n->orig;
- // rewrite n in place.
+ if(n == n->orig) {
+ // duplicate node for n->orig.
+ norig = nod(OLITERAL, N, N);
+ *norig = *n;
+ } else
+ norig = n->orig;
*n = *nl;
// restore value of n->orig.
n->orig = norig;
val.u.xval = mal(sizeof(*n->val.u.xval));
mpmovecfix(val.u.xval, v);
n = nod(OLITERAL, N, N);
+ n->orig = nn;
n->val = val;
n->type = types[TUINTPTR];
+ nn->type = types[TUINTPTR];
return n;
}
// Issue 2452.
// Check that the error messages says
-// bug378.go:17: 3 not used
+// bug378.go:17: 1 + 2 not used
// and not
// bug378.go:17: 1 not used
package main
func main() {
- 1 + 2 // ERROR "3 not used|value computed is not used"
+ 1 + 2 // ERROR "1 \+ 2 not used|value computed is not used"
}
--- /dev/null
+// errchk $G $D/$F.go
+
+// Copyright 2011 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.
+
+// Issue 2276.
+
+// Check that the error messages says
+// bug378.go:19: unsafe.Alignof(0) not used
+// and not
+// bug378.go:19: 4 not used
+
+package main
+
+import "unsafe"
+
+func main() {
+ unsafe.Alignof(0) // ERROR "unsafe\.Alignof|value computed is not used"
+}