modifier_opt.sol 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // RUN: --target polkadot --emit cfg
  2. contract Test {
  3. // BEGIN-CHECK: Test::testMethod::modifier0::m1
  4. modifier m1() {
  5. require(msg.value != 1 - 1);
  6. _;
  7. require(msg.value != 2 ** 128 - 1);
  8. // CHECK: block0: # entry
  9. // CHECK: branchcond (uint128((builtin Value ())) != uint128 0),
  10. // NOT-CHECK: uint128 1 - uint128 1
  11. // CHECK: branchcond (uint128((builtin Value ())) != uint128 340282366920938463463374607431768211455),
  12. // NOT-CHECK: uint128 2 ** uint128 127
  13. }
  14. // BEGIN-CHECK: Test::testMethod::modifier1::m2
  15. modifier m2() {
  16. require(msg.value != 2 ** 128 - 1);
  17. _;
  18. require(msg.value != 1 - 1);
  19. // CHECK: block0: # entry
  20. // CHECK: branchcond (uint128((builtin Value ())) != uint128 340282366920938463463374607431768211455),
  21. // NOT-CHECK: uint128 2 ** uint128 127,
  22. // CHECK: branchcond (uint128((builtin Value ())) != uint128 0),
  23. // NOT-CHECK: uint128 1 - uint128 1
  24. }
  25. // BEGIN-CHECK: Test::function::testMethod
  26. function testMethod() public payable m1 m2 returns (uint256) {
  27. return 2 ** 256 - 1;
  28. // CHECK: block0: # entry
  29. // CHECK: return uint256 115792089237316195423570985008687907853269984665640564039457584007913129639935
  30. // NOT-CHECK: (uint256 2 ** uint256 256) - uint256 1
  31. }
  32. }