revive-integration 1.4.0

revive compiler integration test cases
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
object "MsizeCopy" {
  code { let s := datasize("MsizeCopy_deployed") codecopy(0, dataoffset("MsizeCopy_deployed"), s) return(0, s) }
  object "MsizeCopy_deployed" {
    code {
      let op := calldataload(0)
      let r := 0
      switch op
      case 0 { calldatacopy(0x81, 0, 5) r := msize() }   // dest 0x81 len 5 -> end 0x86 -> EVM 0xA0
      case 1 { mstore(0x80, 1) mcopy(0x141, 0x80, 7) r := msize() }  // dest 0x141 len 7 -> 0x148 -> 0x160
      case 2 { calldatacopy(0x100, 0, 33) r := msize() }  // 0x100+33=0x121 -> 0x140
      default { r := 0 }
      mstore(0x400, r)
      return(0x400, 32)
    }
  }
}