mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
change SMTChecker default settings
This commit is contained in:
@@ -1 +1 @@
|
||||
--model-checker-engine all
|
||||
--model-checker-engine all --model-checker-targets divByZero
|
||||
|
||||
@@ -1 +1 @@
|
||||
--model-checker-engine bmc
|
||||
--model-checker-engine bmc --model-checker-targets divByZero
|
||||
|
||||
@@ -1 +1 @@
|
||||
--model-checker-engine chc
|
||||
--model-checker-engine chc --model-checker-targets divByZero
|
||||
|
||||
@@ -1 +1 @@
|
||||
--model-checker-engine all --model-checker-div-mod-no-slacks
|
||||
--model-checker-engine all --model-checker-div-mod-no-slacks --model-checker-targets divByZero
|
||||
|
||||
@@ -1 +1 @@
|
||||
--model-checker-engine bmc --model-checker-div-mod-no-slacks
|
||||
--model-checker-engine bmc --model-checker-div-mod-no-slacks --model-checker-targets divByZero
|
||||
|
||||
@@ -1 +1 @@
|
||||
--model-checker-engine chc --model-checker-div-mod-no-slacks
|
||||
--model-checker-engine chc --model-checker-div-mod-no-slacks --model-checker-targets divByZero
|
||||
|
||||
@@ -1,18 +1,3 @@
|
||||
Warning: CHC: Division by zero happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
a = 0x0
|
||||
x = 0
|
||||
|
||||
Transaction trace:
|
||||
test.constructor()
|
||||
State: arr = []
|
||||
test.f(0x0, 1)
|
||||
--> model_checker_targets_default_all_engines/input.sol:9:3:
|
||||
|
|
||||
9 | 2 / x;
|
||||
| ^^^^^
|
||||
|
||||
Warning: CHC: Assertion violation happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
@@ -27,52 +12,3 @@ test.f(0x0, 1)
|
||||
|
|
||||
11 | assert(x > 0);
|
||||
| ^^^^^^^^^^^^^
|
||||
|
||||
Warning: CHC: Empty array "pop" happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
a = 0x0
|
||||
x = 0
|
||||
|
||||
Transaction trace:
|
||||
test.constructor()
|
||||
State: arr = []
|
||||
test.f(0x0, 1)
|
||||
--> model_checker_targets_default_all_engines/input.sol:12:3:
|
||||
|
|
||||
12 | arr.pop();
|
||||
| ^^^^^^^^^
|
||||
|
||||
Warning: CHC: Out of bounds access happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
a = 0x0
|
||||
x = 0
|
||||
|
||||
Transaction trace:
|
||||
test.constructor()
|
||||
State: arr = []
|
||||
test.f(0x0, 1)
|
||||
--> model_checker_targets_default_all_engines/input.sol:13:3:
|
||||
|
|
||||
13 | arr[x];
|
||||
| ^^^^^^
|
||||
|
||||
Warning: BMC: Condition is always true.
|
||||
--> model_checker_targets_default_all_engines/input.sol:6:11:
|
||||
|
|
||||
6 | require(x >= 0);
|
||||
| ^^^^^^
|
||||
Note: Callstack:
|
||||
|
||||
Warning: BMC: Insufficient funds happens here.
|
||||
--> model_checker_targets_default_all_engines/input.sol:10:3:
|
||||
|
|
||||
10 | a.transfer(x);
|
||||
| ^^^^^^^^^^^^^
|
||||
Note: Counterexample:
|
||||
a = 0
|
||||
x = 0
|
||||
|
||||
Note: Callstack:
|
||||
Note:
|
||||
|
||||
@@ -1,35 +1,3 @@
|
||||
Warning: BMC: Condition is always true.
|
||||
--> model_checker_targets_default_bmc/input.sol:6:11:
|
||||
|
|
||||
6 | require(x >= 0);
|
||||
| ^^^^^^
|
||||
Note: Callstack:
|
||||
|
||||
Warning: BMC: Division by zero happens here.
|
||||
--> model_checker_targets_default_bmc/input.sol:9:3:
|
||||
|
|
||||
9 | 2 / x;
|
||||
| ^^^^^
|
||||
Note: Counterexample:
|
||||
<result> = 0
|
||||
a = 0
|
||||
x = 0
|
||||
|
||||
Note: Callstack:
|
||||
Note:
|
||||
|
||||
Warning: BMC: Insufficient funds happens here.
|
||||
--> model_checker_targets_default_bmc/input.sol:10:3:
|
||||
|
|
||||
10 | a.transfer(x);
|
||||
| ^^^^^^^^^^^^^
|
||||
Note: Counterexample:
|
||||
a = 0
|
||||
x = 0
|
||||
|
||||
Note: Callstack:
|
||||
Note:
|
||||
|
||||
Warning: BMC: Assertion violation happens here.
|
||||
--> model_checker_targets_default_bmc/input.sol:11:3:
|
||||
|
|
||||
|
||||
@@ -1,18 +1,3 @@
|
||||
Warning: CHC: Division by zero happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
a = 0x0
|
||||
x = 0
|
||||
|
||||
Transaction trace:
|
||||
test.constructor()
|
||||
State: arr = []
|
||||
test.f(0x0, 1)
|
||||
--> model_checker_targets_default_chc/input.sol:9:3:
|
||||
|
|
||||
9 | 2 / x;
|
||||
| ^^^^^
|
||||
|
||||
Warning: CHC: Assertion violation happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
@@ -27,33 +12,3 @@ test.f(0x0, 1)
|
||||
|
|
||||
11 | assert(x > 0);
|
||||
| ^^^^^^^^^^^^^
|
||||
|
||||
Warning: CHC: Empty array "pop" happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
a = 0x0
|
||||
x = 0
|
||||
|
||||
Transaction trace:
|
||||
test.constructor()
|
||||
State: arr = []
|
||||
test.f(0x0, 1)
|
||||
--> model_checker_targets_default_chc/input.sol:12:3:
|
||||
|
|
||||
12 | arr.pop();
|
||||
| ^^^^^^^^^
|
||||
|
||||
Warning: CHC: Out of bounds access happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
a = 0x0
|
||||
x = 0
|
||||
|
||||
Transaction trace:
|
||||
test.constructor()
|
||||
State: arr = []
|
||||
test.f(0x0, 1)
|
||||
--> model_checker_targets_default_chc/input.sol:13:3:
|
||||
|
|
||||
13 | arr[x];
|
||||
| ^^^^^^
|
||||
|
||||
@@ -1 +1 @@
|
||||
--model-checker-engine all --model-checker-timeout 1000
|
||||
--model-checker-engine all --model-checker-timeout 1000 --model-checker-targets all
|
||||
|
||||
@@ -1 +1 @@
|
||||
--model-checker-engine bmc --model-checker-timeout 1000
|
||||
--model-checker-engine bmc --model-checker-timeout 1000 --model-checker-targets all
|
||||
|
||||
@@ -1 +1 @@
|
||||
--model-checker-engine chc --model-checker-timeout 1000
|
||||
--model-checker-engine chc --model-checker-timeout 1000 --model-checker-targets all
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
{
|
||||
"modelChecker":
|
||||
{
|
||||
"targets": ["divByZero"],
|
||||
"engine": "all"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
{
|
||||
"modelChecker":
|
||||
{
|
||||
"targets": ["divByZero"],
|
||||
"engine": "bmc"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
{
|
||||
"modelChecker":
|
||||
{
|
||||
"targets": ["divByZero"],
|
||||
"engine": "chc"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
{
|
||||
"modelChecker":
|
||||
{
|
||||
"targets": ["divByZero"],
|
||||
"engine": "all",
|
||||
"divModNoSlacks": true
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
{
|
||||
"modelChecker":
|
||||
{
|
||||
"targets": ["divByZero"],
|
||||
"engine": "bmc",
|
||||
"divModNoSlacks": true
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
{
|
||||
"modelChecker":
|
||||
{
|
||||
"targets": ["divByZero"],
|
||||
"engine": "chc",
|
||||
"divModNoSlacks": true
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
{
|
||||
"modelChecker":
|
||||
{
|
||||
"targets": ["divByZero"],
|
||||
"engine": "chc",
|
||||
"divModNoSlacks": 42
|
||||
}
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
{
|
||||
"smtlib2queries":
|
||||
{
|
||||
"0x75b95497d56c30e254a59358d72ddd4e78f9e90db621cfe677e85d05b2252411": "(set-option :produce-models true)
|
||||
"0x1709577b0e186388ed08c2cf085f20c115c4c94745fb102c5be552ff2e4c7028": "(set-option :produce-models true)
|
||||
(set-option :timeout 1000)
|
||||
(set-logic ALL)
|
||||
(declare-fun |x_3_3| () Int)
|
||||
(declare-fun |error_0| () Int)
|
||||
|
||||
@@ -1,44 +1,6 @@
|
||||
{
|
||||
"errors":
|
||||
[
|
||||
{
|
||||
"component": "general",
|
||||
"errorCode": "4281",
|
||||
"formattedMessage": "Warning: CHC: Division by zero happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
a = 0x0
|
||||
x = 0
|
||||
|
||||
Transaction trace:
|
||||
test.constructor()
|
||||
State: arr = []
|
||||
test.f(0x0, 1)
|
||||
--> A:10:7:
|
||||
|
|
||||
10 | \t\t\t\t\t\t2 / x;
|
||||
| \t\t\t\t\t\t^^^^^
|
||||
|
||||
",
|
||||
"message": "CHC: Division by zero happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
a = 0x0
|
||||
x = 0
|
||||
|
||||
Transaction trace:
|
||||
test.constructor()
|
||||
State: arr = []
|
||||
test.f(0x0, 1)",
|
||||
"severity": "warning",
|
||||
"sourceLocation":
|
||||
{
|
||||
"end": 216,
|
||||
"file": "A",
|
||||
"start": 211
|
||||
},
|
||||
"type": "Warning"
|
||||
},
|
||||
{
|
||||
"component": "general",
|
||||
"errorCode": "6328",
|
||||
@@ -76,150 +38,6 @@ test.f(0x0, 1)",
|
||||
"start": 245
|
||||
},
|
||||
"type": "Warning"
|
||||
},
|
||||
{
|
||||
"component": "general",
|
||||
"errorCode": "2529",
|
||||
"formattedMessage": "Warning: CHC: Empty array \"pop\" happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
a = 0x0
|
||||
x = 0
|
||||
|
||||
Transaction trace:
|
||||
test.constructor()
|
||||
State: arr = []
|
||||
test.f(0x0, 1)
|
||||
--> A:13:7:
|
||||
|
|
||||
13 | \t\t\t\t\t\tarr.pop();
|
||||
| \t\t\t\t\t\t^^^^^^^^^
|
||||
|
||||
",
|
||||
"message": "CHC: Empty array \"pop\" happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
a = 0x0
|
||||
x = 0
|
||||
|
||||
Transaction trace:
|
||||
test.constructor()
|
||||
State: arr = []
|
||||
test.f(0x0, 1)",
|
||||
"severity": "warning",
|
||||
"sourceLocation":
|
||||
{
|
||||
"end": 275,
|
||||
"file": "A",
|
||||
"start": 266
|
||||
},
|
||||
"type": "Warning"
|
||||
},
|
||||
{
|
||||
"component": "general",
|
||||
"errorCode": "6368",
|
||||
"formattedMessage": "Warning: CHC: Out of bounds access happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
a = 0x0
|
||||
x = 0
|
||||
|
||||
Transaction trace:
|
||||
test.constructor()
|
||||
State: arr = []
|
||||
test.f(0x0, 1)
|
||||
--> A:14:7:
|
||||
|
|
||||
14 | \t\t\t\t\t\tarr[x];
|
||||
| \t\t\t\t\t\t^^^^^^
|
||||
|
||||
",
|
||||
"message": "CHC: Out of bounds access happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
a = 0x0
|
||||
x = 0
|
||||
|
||||
Transaction trace:
|
||||
test.constructor()
|
||||
State: arr = []
|
||||
test.f(0x0, 1)",
|
||||
"severity": "warning",
|
||||
"sourceLocation":
|
||||
{
|
||||
"end": 289,
|
||||
"file": "A",
|
||||
"start": 283
|
||||
},
|
||||
"type": "Warning"
|
||||
},
|
||||
{
|
||||
"component": "general",
|
||||
"errorCode": "6838",
|
||||
"formattedMessage": "Warning: BMC: Condition is always true.
|
||||
--> A:7:15:
|
||||
|
|
||||
7 | \t\t\t\t\t\trequire(x >= 0);
|
||||
| \t\t\t\t\t\t ^^^^^^
|
||||
Note: Callstack:
|
||||
|
||||
",
|
||||
"message": "BMC: Condition is always true.",
|
||||
"secondarySourceLocations":
|
||||
[
|
||||
{
|
||||
"message": "Callstack:"
|
||||
}
|
||||
],
|
||||
"severity": "warning",
|
||||
"sourceLocation":
|
||||
{
|
||||
"end": 165,
|
||||
"file": "A",
|
||||
"start": 159
|
||||
},
|
||||
"type": "Warning"
|
||||
},
|
||||
{
|
||||
"component": "general",
|
||||
"errorCode": "1236",
|
||||
"formattedMessage": "Warning: BMC: Insufficient funds happens here.
|
||||
--> A:11:7:
|
||||
|
|
||||
11 | \t\t\t\t\t\ta.transfer(x);
|
||||
| \t\t\t\t\t\t^^^^^^^^^^^^^
|
||||
Note: Counterexample:
|
||||
a = 0
|
||||
x = 0
|
||||
|
||||
Note: Callstack:
|
||||
Note:
|
||||
|
||||
",
|
||||
"message": "BMC: Insufficient funds happens here.",
|
||||
"secondarySourceLocations":
|
||||
[
|
||||
{
|
||||
"message": "Counterexample:
|
||||
a = 0
|
||||
x = 0
|
||||
"
|
||||
},
|
||||
{
|
||||
"message": "Callstack:"
|
||||
},
|
||||
{
|
||||
"message": ""
|
||||
}
|
||||
],
|
||||
"severity": "warning",
|
||||
"sourceLocation":
|
||||
{
|
||||
"end": 237,
|
||||
"file": "A",
|
||||
"start": 224
|
||||
},
|
||||
"type": "Warning"
|
||||
}
|
||||
],
|
||||
"sources":
|
||||
|
||||
@@ -1,117 +1,6 @@
|
||||
{
|
||||
"errors":
|
||||
[
|
||||
{
|
||||
"component": "general",
|
||||
"errorCode": "6838",
|
||||
"formattedMessage": "Warning: BMC: Condition is always true.
|
||||
--> A:7:15:
|
||||
|
|
||||
7 | \t\t\t\t\t\trequire(x >= 0);
|
||||
| \t\t\t\t\t\t ^^^^^^
|
||||
Note: Callstack:
|
||||
|
||||
",
|
||||
"message": "BMC: Condition is always true.",
|
||||
"secondarySourceLocations":
|
||||
[
|
||||
{
|
||||
"message": "Callstack:"
|
||||
}
|
||||
],
|
||||
"severity": "warning",
|
||||
"sourceLocation":
|
||||
{
|
||||
"end": 165,
|
||||
"file": "A",
|
||||
"start": 159
|
||||
},
|
||||
"type": "Warning"
|
||||
},
|
||||
{
|
||||
"component": "general",
|
||||
"errorCode": "3046",
|
||||
"formattedMessage": "Warning: BMC: Division by zero happens here.
|
||||
--> A:10:7:
|
||||
|
|
||||
10 | \t\t\t\t\t\t2 / x;
|
||||
| \t\t\t\t\t\t^^^^^
|
||||
Note: Counterexample:
|
||||
<result> = 0
|
||||
a = 0
|
||||
x = 0
|
||||
|
||||
Note: Callstack:
|
||||
Note:
|
||||
|
||||
",
|
||||
"message": "BMC: Division by zero happens here.",
|
||||
"secondarySourceLocations":
|
||||
[
|
||||
{
|
||||
"message": "Counterexample:
|
||||
<result> = 0
|
||||
a = 0
|
||||
x = 0
|
||||
"
|
||||
},
|
||||
{
|
||||
"message": "Callstack:"
|
||||
},
|
||||
{
|
||||
"message": ""
|
||||
}
|
||||
],
|
||||
"severity": "warning",
|
||||
"sourceLocation":
|
||||
{
|
||||
"end": 216,
|
||||
"file": "A",
|
||||
"start": 211
|
||||
},
|
||||
"type": "Warning"
|
||||
},
|
||||
{
|
||||
"component": "general",
|
||||
"errorCode": "1236",
|
||||
"formattedMessage": "Warning: BMC: Insufficient funds happens here.
|
||||
--> A:11:7:
|
||||
|
|
||||
11 | \t\t\t\t\t\ta.transfer(x);
|
||||
| \t\t\t\t\t\t^^^^^^^^^^^^^
|
||||
Note: Counterexample:
|
||||
a = 0
|
||||
x = 0
|
||||
|
||||
Note: Callstack:
|
||||
Note:
|
||||
|
||||
",
|
||||
"message": "BMC: Insufficient funds happens here.",
|
||||
"secondarySourceLocations":
|
||||
[
|
||||
{
|
||||
"message": "Counterexample:
|
||||
a = 0
|
||||
x = 0
|
||||
"
|
||||
},
|
||||
{
|
||||
"message": "Callstack:"
|
||||
},
|
||||
{
|
||||
"message": ""
|
||||
}
|
||||
],
|
||||
"severity": "warning",
|
||||
"sourceLocation":
|
||||
{
|
||||
"end": 237,
|
||||
"file": "A",
|
||||
"start": 224
|
||||
},
|
||||
"type": "Warning"
|
||||
},
|
||||
{
|
||||
"component": "general",
|
||||
"errorCode": "4661",
|
||||
|
||||
@@ -1,44 +1,6 @@
|
||||
{
|
||||
"errors":
|
||||
[
|
||||
{
|
||||
"component": "general",
|
||||
"errorCode": "4281",
|
||||
"formattedMessage": "Warning: CHC: Division by zero happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
a = 0x0
|
||||
x = 0
|
||||
|
||||
Transaction trace:
|
||||
test.constructor()
|
||||
State: arr = []
|
||||
test.f(0x0, 1)
|
||||
--> A:10:7:
|
||||
|
|
||||
10 | \t\t\t\t\t\t2 / x;
|
||||
| \t\t\t\t\t\t^^^^^
|
||||
|
||||
",
|
||||
"message": "CHC: Division by zero happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
a = 0x0
|
||||
x = 0
|
||||
|
||||
Transaction trace:
|
||||
test.constructor()
|
||||
State: arr = []
|
||||
test.f(0x0, 1)",
|
||||
"severity": "warning",
|
||||
"sourceLocation":
|
||||
{
|
||||
"end": 216,
|
||||
"file": "A",
|
||||
"start": 211
|
||||
},
|
||||
"type": "Warning"
|
||||
},
|
||||
{
|
||||
"component": "general",
|
||||
"errorCode": "6328",
|
||||
@@ -76,82 +38,6 @@ test.f(0x0, 1)",
|
||||
"start": 245
|
||||
},
|
||||
"type": "Warning"
|
||||
},
|
||||
{
|
||||
"component": "general",
|
||||
"errorCode": "2529",
|
||||
"formattedMessage": "Warning: CHC: Empty array \"pop\" happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
a = 0x0
|
||||
x = 0
|
||||
|
||||
Transaction trace:
|
||||
test.constructor()
|
||||
State: arr = []
|
||||
test.f(0x0, 1)
|
||||
--> A:13:7:
|
||||
|
|
||||
13 | \t\t\t\t\t\tarr.pop();
|
||||
| \t\t\t\t\t\t^^^^^^^^^
|
||||
|
||||
",
|
||||
"message": "CHC: Empty array \"pop\" happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
a = 0x0
|
||||
x = 0
|
||||
|
||||
Transaction trace:
|
||||
test.constructor()
|
||||
State: arr = []
|
||||
test.f(0x0, 1)",
|
||||
"severity": "warning",
|
||||
"sourceLocation":
|
||||
{
|
||||
"end": 275,
|
||||
"file": "A",
|
||||
"start": 266
|
||||
},
|
||||
"type": "Warning"
|
||||
},
|
||||
{
|
||||
"component": "general",
|
||||
"errorCode": "6368",
|
||||
"formattedMessage": "Warning: CHC: Out of bounds access happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
a = 0x0
|
||||
x = 0
|
||||
|
||||
Transaction trace:
|
||||
test.constructor()
|
||||
State: arr = []
|
||||
test.f(0x0, 1)
|
||||
--> A:14:7:
|
||||
|
|
||||
14 | \t\t\t\t\t\tarr[x];
|
||||
| \t\t\t\t\t\t^^^^^^
|
||||
|
||||
",
|
||||
"message": "CHC: Out of bounds access happens here.
|
||||
Counterexample:
|
||||
arr = []
|
||||
a = 0x0
|
||||
x = 0
|
||||
|
||||
Transaction trace:
|
||||
test.constructor()
|
||||
State: arr = []
|
||||
test.f(0x0, 1)",
|
||||
"severity": "warning",
|
||||
"sourceLocation":
|
||||
{
|
||||
"end": 289,
|
||||
"file": "A",
|
||||
"start": 283
|
||||
},
|
||||
"type": "Warning"
|
||||
}
|
||||
],
|
||||
"sources":
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
{
|
||||
"modelChecker":
|
||||
{
|
||||
"targets": ["assert", "divByZero"],
|
||||
"engine": "all",
|
||||
"timeout": 1000
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
{
|
||||
"modelChecker":
|
||||
{
|
||||
"targets": ["assert", "divByZero"],
|
||||
"engine": "bmc",
|
||||
"timeout": 1000
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
{
|
||||
"modelChecker":
|
||||
{
|
||||
"targets": ["assert", "divByZero"],
|
||||
"engine": "chc",
|
||||
"timeout": 1000
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user