| // Copyright 2015 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 fail() // unimplemented, to test dead code elimination | |
| // Test dead code elimination in if statements | |
| func init() { | |
| if false { | |
| fail() | |
| } | |
| if 0 == 1 { | |
| fail() | |
| } | |
| } | |
| // Test dead code elimination in ordinary switch statements | |
| func init() { | |
| const x = 0 | |
| switch x { | |
| case 1: | |
| fail() | |
| } | |
| switch 1 { | |
| case x: | |
| fail() | |
| } | |
| switch { | |
| case false: | |
| fail() | |
| } | |
| const a = "a" | |
| switch a { | |
| case "b": | |
| fail() | |
| } | |
| const snowman = '☃' | |
| switch snowman { | |
| case '☀': | |
| fail() | |
| } | |
| const zero = float64(0.0) | |
| const one = float64(1.0) | |
| switch one { | |
| case -1.0: | |
| fail() | |
| case zero: | |
| fail() | |
| } | |
| switch 1.0i { | |
| case 1: | |
| fail() | |
| case -1i: | |
| fail() | |
| } | |
| const no = false | |
| switch no { | |
| case true: | |
| fail() | |
| } | |
| // Test dead code elimination in large ranges. | |
| switch 5 { | |
| case 3, 4, 5, 6, 7: | |
| case 0, 1, 2: | |
| fail() | |
| default: | |
| fail() | |
| } | |
| } | |
| func main() { | |
| } |