From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; 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. --- gcc/testsuite/go.test/test/switch.go | 139 +++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 gcc/testsuite/go.test/test/switch.go (limited to 'gcc/testsuite/go.test/test/switch.go') diff --git a/gcc/testsuite/go.test/test/switch.go b/gcc/testsuite/go.test/test/switch.go new file mode 100644 index 000000000..0c253d6e2 --- /dev/null +++ b/gcc/testsuite/go.test/test/switch.go @@ -0,0 +1,139 @@ +// $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) + } +} + +func main() { + i5 := 5 + i7 := 7 + hello := "hello" + + switch true { + case i5 < 5: assert(false, "<") + case i5 == 5: assert(true, "!") + case i5 > 5: assert(false, ">") + } + + switch { + case i5 < 5: assert(false, "<") + case i5 == 5: assert(true, "!") + case i5 > 5: assert(false, ">") + } + + switch x := 5; true { + case i5 < x: assert(false, "<") + case i5 == x: assert(true, "!") + case i5 > x: assert(false, ">") + } + + switch x := 5; true { + case i5 < x: assert(false, "<") + case i5 == x: assert(true, "!") + case i5 > x: assert(false, ">") + } + + switch i5 { + case 0: assert(false, "0") + case 1: assert(false, "1") + case 2: assert(false, "2") + case 3: assert(false, "3") + case 4: assert(false, "4") + case 5: assert(true, "5") + case 6: assert(false, "6") + case 7: assert(false, "7") + case 8: assert(false, "8") + case 9: assert(false, "9") + default: assert(false, "default") + } + + switch i5 { + case 0,1,2,3,4: assert(false, "4") + case 5: assert(true, "5") + case 6,7,8,9: assert(false, "9") + default: assert(false, "default") + } + + switch i5 { + case 0: + case 1: + case 2: + case 3: + case 4: assert(false, "4") + case 5: assert(true, "5") + case 6: + case 7: + case 8: + case 9: + default: assert(i5 == 5, "good") + } + + switch i5 { + case 0: dummy := 0; _ = dummy; fallthrough + case 1: dummy := 0; _ = dummy; fallthrough + case 2: dummy := 0; _ = dummy; fallthrough + case 3: dummy := 0; _ = dummy; fallthrough + case 4: dummy := 0; _ = dummy; assert(false, "4") + case 5: dummy := 0; _ = dummy; fallthrough + case 6: dummy := 0; _ = dummy; fallthrough + case 7: dummy := 0; _ = dummy; fallthrough + case 8: dummy := 0; _ = dummy; fallthrough + case 9: dummy := 0; _ = dummy; fallthrough + default: dummy := 0; _ = dummy; assert(i5 == 5, "good") + } + + fired := false + switch i5 { + case 0: dummy := 0; _ = dummy; fallthrough; // tests scoping of cases + case 1: dummy := 0; _ = dummy; fallthrough + case 2: dummy := 0; _ = dummy; fallthrough + case 3: dummy := 0; _ = dummy; fallthrough + case 4: dummy := 0; _ = dummy; assert(false, "4") + case 5: dummy := 0; _ = dummy; fallthrough + case 6: dummy := 0; _ = dummy; fallthrough + case 7: dummy := 0; _ = dummy; fallthrough + case 8: dummy := 0; _ = dummy; fallthrough + case 9: dummy := 0; _ = dummy; fallthrough + default: dummy := 0; _ = dummy; fired = !fired; assert(i5 == 5, "good") + } + assert(fired, "fired") + + count := 0 + switch i5 { + case 0: count = count + 1; fallthrough + case 1: count = count + 1; fallthrough + case 2: count = count + 1; fallthrough + case 3: count = count + 1; fallthrough + case 4: count = count + 1; assert(false, "4") + case 5: count = count + 1; fallthrough + case 6: count = count + 1; fallthrough + case 7: count = count + 1; fallthrough + case 8: count = count + 1; fallthrough + case 9: count = count + 1; fallthrough + default: assert(i5 == count, "good") + } + assert(fired, "fired") + + switch hello { + case "wowie": assert(false, "wowie") + case "hello": assert(true, "hello") + case "jumpn": assert(false, "jumpn") + default: assert(false, "default") + } + + fired = false + switch i := i5 + 2; i { + case i7: fired = true + default: assert(false, "fail") + } + assert(fired, "var") +} -- cgit v1.2.3