summaryrefslogtreecommitdiff
path: root/gcc/testsuite/go.test/test/iota.go
diff options
context:
space:
mode:
authorupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
committerupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
commit554fd8c5195424bdbcabf5de30fdc183aba391bd (patch)
tree976dc5ab7fddf506dadce60ae936f43f58787092 /gcc/testsuite/go.test/test/iota.go
downloadcbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.bz2
cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.xz
obtained gcc-4.6.4.tar.bz2 from upstream website;upstream
verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository.
Diffstat (limited to 'gcc/testsuite/go.test/test/iota.go')
-rw-r--r--gcc/testsuite/go.test/test/iota.go120
1 files changed, 120 insertions, 0 deletions
diff --git a/gcc/testsuite/go.test/test/iota.go b/gcc/testsuite/go.test/test/iota.go
new file mode 100644
index 000000000..c40ca1f38
--- /dev/null
+++ b/gcc/testsuite/go.test/test/iota.go
@@ -0,0 +1,120 @@
+// $G $F.go && $L $F.$A && ./$A.out
+
+// 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 assert(cond bool, msg string) {
+ if !cond {
+ print("assertion fail: ", msg, "\n")
+ panic(1)
+ }
+}
+
+const (
+ x int = iota
+ y = iota
+ z = 1 << iota
+ f float32 = 2 * iota
+ g float32 = 4.5 * float32(iota)
+)
+
+const (
+ X = 0
+ Y
+ Z
+)
+
+const (
+ A = 1 << iota
+ B
+ C
+ D
+ E = iota * iota
+ F
+ G
+)
+
+const (
+ a = 1
+ b = iota << a
+ c = iota << b
+ d
+)
+
+const (
+ i = (a << iota) + (b * iota)
+ j
+ k
+ l
+)
+
+const (
+ m = iota == 0
+ n
+)
+
+const (
+ p = float32(iota)
+ q
+ r
+)
+
+const (
+ s = string(iota + 'a')
+ t
+)
+
+const (
+ abit, amask = 1 << iota, 1<<iota - 1
+ bbit, bmask = 1 << iota, 1<<iota - 1
+ cbit, cmask = 1 << iota, 1<<iota - 1
+)
+
+func main() {
+ assert(x == 0, "x")
+ assert(y == 1, "y")
+ assert(z == 4, "z")
+ assert(f == 6.0, "f")
+ assert(g == 18.0, "g")
+
+ assert(X == 0, "X")
+ assert(Y == 0, "Y")
+ assert(Z == 0, "Z")
+
+ assert(A == 1, "A")
+ assert(B == 2, "B")
+ assert(C == 4, "C")
+ assert(D == 8, "D")
+ assert(E == 16, "E")
+ assert(F == 25, "F")
+
+ assert(a == 1, "a")
+ assert(b == 2, "b")
+ assert(c == 8, "c")
+ assert(d == 12, "d")
+
+ assert(i == 1, "i")
+ assert(j == 4, "j")
+ assert(k == 8, "k")
+ assert(l == 14, "l")
+
+ assert(m, "m")
+ assert(!n, "n")
+
+ assert(p == 0.0, "p")
+ assert(q == 1.0, "q")
+ assert(r == 2.0, "r")
+
+ assert(s == "a", "s")
+ assert(t == "b", "t")
+
+ assert(abit == 1, "abit")
+ assert(amask == 0, "amask")
+ assert(bbit == 2, "bbit")
+ assert(bmask == 1, "bmask")
+ assert(cbit == 4, "cbit")
+ assert(cmask == 3, "cmask")
+}