mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
[SMTChecker] Support to bitwise
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function f() public pure {
|
||||
int8 x = 1;
|
||||
int8 y = 0;
|
||||
assert(x & y != 0);
|
||||
x = -1; y = 3;
|
||||
assert(x & y == 3);
|
||||
y = -1;
|
||||
int8 z = x & y;
|
||||
assert(z == -1);
|
||||
y = 127;
|
||||
assert(x & y == 127);
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning: (104-122): Assertion violation happens here
|
||||
@@ -0,0 +1,12 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function f() public pure {
|
||||
assert(1 & 0 != 0);
|
||||
assert(-1 & 3 == 3);
|
||||
assert(-1 & -1 == -1);
|
||||
assert(-1 & 127 == 127);
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning: (76-94): Assertion violation happens here
|
||||
@@ -0,0 +1,18 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function f() public pure {
|
||||
uint8 x = 1;
|
||||
uint16 y = 0;
|
||||
assert(x & y != 0);
|
||||
x = 0xff;
|
||||
y = 0xffff;
|
||||
assert(x & y == 0xff);
|
||||
assert(x & y == 0xffff);
|
||||
assert(x & y == 0x0000);
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning: (107-125): Assertion violation happens here
|
||||
// Warning: (180-203): Assertion violation happens here
|
||||
// Warning: (207-230): Assertion violation happens here
|
||||
Reference in New Issue
Block a user