You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
1.0 KiB
83 lines
1.0 KiB
4 months ago
|
// 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() {
|
||
|
}
|