case TSLICE:
on = syslook("printslice")
on = substArgTypes(on, n.Type) // any-1
- case TUINT64:
+ case TUINT, TUINT8, TUINT16, TUINT32, TUINT64, TUINTPTR:
if isRuntimePkg(n.Type.Sym.Pkg) && n.Type.Sym.Name == "hex" {
on = syslook("printhex")
} else {
on = syslook("printuint")
}
- case TINT, TUINT, TUINTPTR, TINT8, TUINT8, TINT16, TUINT16, TINT32, TUINT32, TINT64:
+ case TINT, TINT8, TINT16, TINT32, TINT64:
on = syslook("printint")
case TFLOAT32, TFLOAT64:
on = syslook("printfloat")
--- /dev/null
+// cmpout
+
+// Copyright 2017 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 21887: println(^uint(0)) fails to compile
+
+package main
+
+import "strconv"
+
+func main() {
+ if strconv.IntSize == 32 {
+ println(^uint(0))
+ } else {
+ println(^uint32(0))
+ }
+
+ if strconv.IntSize == 64 {
+ println(^uint(0))
+ } else {
+ println(^uint64(0))
+ }
+}
println(([]int)(nil)) // printslice
println(int64(-7)) // printint
println(uint64(7)) // printuint
+ println(uint32(7)) // printuint
+ println(uint16(7)) // printuint
+ println(uint8(7)) // printuint
+ println(uint(7)) // printuint
+ println(uintptr(7)) // printuint
println(8.0) // printfloat
println(complex(9.0, 10.0)) // printcomplex
println(true) // printbool
// test goprintf
defer println((interface{})(nil))
- defer println((interface{f()})(nil))
+ defer println((interface {
+ f()
+ })(nil))
defer println((map[int]int)(nil))
defer println(([]int)(nil))
defer println(int64(-11))
defer println(uint64(12))
+ defer println(uint32(12))
+ defer println(uint16(12))
+ defer println(uint8(12))
+ defer println(uint(12))
+ defer println(uintptr(12))
defer println(13.0)
defer println(complex(14.0, 15.0))
defer println(true)