| // 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() { |
| } |