Source file test/prove_constant_folding.go

     1  // +build amd64
     2  // errorcheck -0 -d=ssa/prove/debug=2
     3  
     4  // Copyright 2022 The Go Authors. All rights reserved.
     5  // Use of this source code is governed by a BSD-style
     6  // license that can be found in the LICENSE file.
     7  
     8  package main
     9  
    10  func f0i(x int) int {
    11    if x == 20 {
    12      return x // ERROR "Proved.+is constant 20$"
    13    }
    14  
    15    if (x + 20) == 20 {
    16      return x + 5 // ERROR "Proved.+is constant 0$"
    17    }
    18  
    19    return x / 2
    20  }
    21  
    22  func f0u(x uint) uint {
    23    if x == 20 {
    24      return x // ERROR "Proved.+is constant 20$"
    25    }
    26  
    27    if (x + 20) == 20 {
    28      return x + 5 // ERROR "Proved.+is constant 0$"
    29    }
    30  
    31    return x / 2
    32  }
    33  

View as plain text