Commit Graph

4163 Commits

Author SHA1 Message Date
chriseth
823a119117
Merge pull request #8570 from aarlt/clang-tidy-apply-modernize-use-emplace
clang-tidy: Apply modernize-use-emplace.
2020-04-07 17:28:50 +02:00
Leonardo Alt
e3ec22124e [SMTChecker] Fix ICE in CHC internal calls 2020-04-07 01:09:03 +02:00
Kamil Śliwak
0efea99fa5 [yul-phaser] Phaser: Allow selecting the classic algorithm on the command line 2020-04-06 19:06:08 +02:00
Kamil Śliwak
f6783c60b2 [yul-phaser] GeneticAlgorithms: Add ClassicGeneticAlgorithm 2020-04-06 19:06:08 +02:00
Kamil Śliwak
8c86a4983d [yul-phaser] Population: Add combine() 2020-04-06 19:06:08 +02:00
Kamil Śliwak
ef8d0888af [yul-phaser] Population: Add symmetricCrossoverWithRemainder() 2020-04-06 19:06:08 +02:00
Kamil Śliwak
59011fcde6 [yul-phaser] Mutations: Add mutationSequence() 2020-04-06 19:06:08 +02:00
Kamil Śliwak
0837a62d5c [yul-phaser] Mutations: Add symmetricRandomPointCrossover() 2020-04-06 19:06:08 +02:00
Kamil Śliwak
b6f8ecf755 [yul-phaser] Selections+PairSelections: Add RandomSubset and PairsFromRandomSubset 2020-04-06 19:06:08 +02:00
Kamil Śliwak
7381068dcc [yul-phaser] Make the Population constructor that takes individuals public and use it to speed up some operations 2020-04-06 19:06:08 +02:00
Kamil Śliwak
2750bb9b90 [yul-phaser] TestHelpers: Generic operator << for printing tuples in boost tests 2020-04-06 19:06:08 +02:00
chriseth
806c835647
Merge pull request #8568 from aarlt/clang-tidy-apply-modernize-use-override
clang-tidy: Apply modernize-use-override.
2020-04-06 16:09:02 +02:00
Daniel Kirchner
84d7bac4f6 Format immutable references similarly to link references. 2020-04-06 11:21:53 +02:00
Daniel Kirchner
81652686be Debug information for immutable references. 2020-04-06 10:56:42 +02:00
Daniel Kirchner
d68c526eaa Disallow external function pointers as immutables. 2020-04-03 11:56:51 +02:00
Alexander Arlt
cae6e7769f Apply modernize-use-override. 2020-04-02 18:00:44 -05:00
Alexander Arlt
90bb1d8a7c Apply modernize-use-emplace. 2020-04-02 17:35:48 -05:00
chriseth
d7a39c86ce Accessors for immutable variables. 2020-04-02 19:09:54 +02:00
chriseth
216fca5b70
Merge pull request #8578 from ethereum/interface-function-modifier-error
Added error for interface functions that have modifiers; test case
2020-04-02 18:05:32 +02:00
hrkrshnn
ef2bef9ddc Added error for interface function with modifiers; test case 2020-04-02 20:30:43 +05:30
Leonardo Alt
39ff0deb05 Zero initialize memory arrays 2020-04-02 15:55:18 +02:00
Mathias Baumann
ac7b31e559 Validate immutable variables 2020-04-02 13:52:27 +02:00
chriseth
a2b427dc0b
Merge pull request #8567 from ethereum/storage-pointer-checker
Removed redundant storage declaration check; test coverages
2020-04-02 13:46:51 +02:00
hrkrshnn
8e6567e399 New folder localStorageVariable for new testcases; added two new tests 2020-04-02 16:34:45 +05:30
hrkrshnn
aec0ae8ec1 Extended test-coverage for storage declaration 2020-04-02 15:45:04 +05:30
chriseth
3224785381
Merge pull request #8569 from aarlt/clang-tidy-apply-modernize-use-nullptr
clang-tidy: Apply modernize-use-nullptr.
2020-04-02 10:38:54 +02:00
hrkrshnn
79387b2ada Removed redundant declaration check; changed relevant test cases 2020-04-02 12:27:38 +05:30
Daniel Kirchner
77ea896b68 Properly handle assignments of immutables at declaration. 2020-04-02 08:35:22 +02:00
Alexander Arlt
616fd8df1e Apply modernize-use-nullptr. 2020-04-01 12:46:19 -05:00
Daniel Kirchner
fe9f8d520c Restrict size for dynamic memory array creation. 2020-04-01 17:25:09 +02:00
Alexander Arlt
3e649eb8e1 Disallow access to functions from inline assembly. 2020-04-01 10:34:55 +02:00
chriseth
b83d82ab75
Merge pull request #8550 from a3d4/fix-8450-typechecker-compiler-error
Fix  a couple of internal compiler errors when assigning nested tuples
2020-03-31 22:21:58 +02:00
a3d4
c002cae691 Fix #8450. Prevented internal compiler errors when assigning nested tuples. 2020-03-31 03:25:26 +02:00
Djordje Mijovic
89d5ecdd24 [Sol2Yul] Adding support for constructor with parameters 2020-03-27 01:19:11 +01:00
chriseth
173f234860 Refactor: Replace inheritance hierarchy by most derived contract. 2020-03-26 18:27:39 +01:00
chriseth
165f7bf60f Move files. 2020-03-26 17:47:36 +01:00
Alexander Arlt
67e9776418 Extract 45 tests from SolidityEndToEndTest.cpp 2020-03-26 17:39:12 +01:00
chriseth
ff23f165f0
Merge pull request #8452 from imapp-pl/yul-phaser-more-output
[yul-phaser] More output
2020-03-25 16:43:05 +01:00
chriseth
1897138916
Merge pull request #8522 from a3d4/fix-8427-ast-types-compiler-error
Promoted typeError to fatalTypeError in ReferencesResolver
2020-03-25 11:23:00 +01:00
Kamil Śliwak
3f524ccfe5 [yul-phaser] Population: Print individuals in a more compact way 2020-03-25 10:21:18 +01:00
Kamil Śliwak
10e8d3616c [yul-phaser] AlgorithmRunner: Print total time when showing only the top chromosome 2020-03-25 10:21:18 +01:00
Kamil Śliwak
cd16a6e178 [yul-phaser] Add --show-cache-stats option 2020-03-25 10:21:18 +01:00
Kamil Śliwak
3e35decf2b [yul-phaser] ProgramCache: Add ability to gather cache stats 2020-03-25 10:21:18 +01:00
Kamil Śliwak
47c3b558f2 [yul-phaser] AlgorithmRunner: Print elapsed time after each round 2020-03-25 10:21:18 +01:00
Kamil Śliwak
c875b3d944 [yul-phaser] Add --show-only-top-chromosome and --hide-round options 2020-03-25 10:21:18 +01:00
Kamil Śliwak
ec10a3d378 [yul-phaser] Add --show-initial-population option 2020-03-25 10:21:18 +01:00
Kamil Śliwak
d6b96063f8 [yul-phaser] AlgorithmRunner: Make all tests use population from AlgorithmRunnerFixture 2020-03-25 10:21:18 +01:00
Kamil Śliwak
a97aeb0e6e [yul-phaser] AlgorithmRunner: A stronger test for run() output 2020-03-25 10:21:18 +01:00
a3d4
339f3ca32c Fix #8427: Promoted typeError to fatalTypeError in ReferencesResolver::endVisit(UserDefinedTypeName). 2020-03-25 02:51:34 +01:00
chriseth
28c0bc5929
Merge pull request #8451 from imapp-pl/yul-phaser-program-cache
[yul-phaser] Program cache
2020-03-24 23:02:53 +01:00
chriseth
0029b8bbbf
Merge pull request #8472 from ethereum/immutableCodegen
Immutable codegen
2020-03-24 22:34:13 +01:00
Kamil Śliwak
98db50ccac [yul-phaser] Add --program-cache option 2020-03-24 17:39:24 +01:00
Kamil Śliwak
3b49fbb8a5 [yul-phaser] Add ProgramCacheFactory class 2020-03-24 17:39:24 +01:00
Kamil Śliwak
e2ff9698d3 [yul-phaser] AlgorithmRunner: Add support for ProgramCache 2020-03-24 17:39:24 +01:00
Kamil Śliwak
259f738f17 [yul-phaser] ProgramBasedMetric: Add the ability to use ProgramCache 2020-03-24 17:39:24 +01:00
Kamil Śliwak
8b443627e2 [yul-phaser] Add ProgramCache class 2020-03-24 17:39:24 +01:00
chriseth
f89e154693
Merge pull request #8514 from imapp-pl/yul-phaser-prefix-option
[yul-phaser] --prefix option
2020-03-24 17:35:45 +01:00
chriseth
6b97f9a4b5
Merge pull request #8513 from imapp-pl/yul-phaser-parsing-yul-objects
[yul-phaser] Parsing Yul objects
2020-03-24 17:33:13 +01:00
Daniel Kirchner
e255c15227 Tests. 2020-03-24 16:45:31 +01:00
Daniel Kirchner
04d8ad2ae1 Legacy codegeneration for immutable state variables. 2020-03-24 16:45:25 +01:00
chriseth
83cbfbb7bf
Merge pull request #8400 from ethereum/fix-8395
[solc] Standard compiler interface to permit exception leaks and use it in fuzzer
2020-03-24 16:20:41 +01:00
Leonardo Alt
42b143098e Add natspec test with too many return tags 2020-03-24 13:04:07 +01:00
Kamil Śliwak
a66ceb11c6 [yul-phaser] Add --prefix option 2020-03-23 16:31:35 +01:00
Kamil Śliwak
29186f9951 [yul-phaser] Program: Switch from using parseCode() to parseObject() 2020-03-23 16:31:19 +01:00
Daniel Kirchner
fe659ceb41 Anything outside storage is always a pointer. 2020-03-23 15:34:10 +01:00
Leonardo Alt
0fcb1427c9 Fix Yul codegen when dynamic array is used as rhs of assignment 2020-03-20 17:52:51 +01:00
Bhargava Shastry
9544df34d7 solc fuzzers: Use compiler stack for fuzzing 2020-03-20 10:50:26 +01:00
chriseth
d55bbd4aa5
Merge pull request #8508 from a3d4/again-refactor-testcase-classes
More refactoring of TestCase classes
2020-03-19 23:05:32 +01:00
chriseth
b5e11e7203
Merge pull request #8449 from imapp-pl/yul-phaser-multi-program-support
[yul-phaser] Multi-program support
2020-03-19 17:07:34 +01:00
chriseth
f25157a5f8 Sort tests. 2020-03-19 14:42:25 +01:00
chriseth
8834b1acaf
Merge pull request #8464 from aarlt/end-to-end-verified
[test] Extraction of 292 tests from SolidityEndToEndTest.cpp
2020-03-19 14:42:04 +01:00
a3d4
f4d9f6772f Unified use of settings. Removed a couple of unused functions. 2020-03-19 14:02:39 +01:00
a3d4
3b9e926559 Moved "step" from settings to expectations. 2020-03-19 13:59:05 +01:00
chriseth
b02a42400b
Merge pull request #8502 from mijovic/testDocsPragma
[docs] Compile examples with minimal compiler version
2020-03-18 19:45:53 +01:00
Erik Kundt
50c22f0800 Adds script which compiles docs example with minimum compiler version. 2020-03-18 19:27:38 +01:00
Alexander Arlt
23d00b5ca3 Extracted 292 tests from SolidityEndToEndTest.cpp 2020-03-18 11:56:43 -05:00
Kamil Śliwak
d86652cb96 [yul-phaser] Add --metric-aggregator option 2020-03-18 16:28:16 +01:00
Kamil Śliwak
bc46323bed [yul-phaser] Phaser: Accepting multiple input programs
- Use average of metric values for individual programs as the overall metric.
2020-03-18 16:28:16 +01:00
Kamil Śliwak
01050940fd [yul-phaser] Add --relative-metric-scale option 2020-03-18 16:28:16 +01:00
Kamil Śliwak
8e64c5c6f0 [yul-phaser] Add --metric option 2020-03-18 16:28:16 +01:00
Kamil Śliwak
e4a360947b [yul-phaser] Add FitnessMetricCombination and derived classes for average, sum, min and max 2020-03-18 16:28:16 +01:00
Kamil Śliwak
0e03839e62 [yul-phaser] Add RelativeProgramSize metric 2020-03-18 16:28:15 +01:00
Kamil Śliwak
7edbbe4edd [yul-phaser] Make FitnessMetric::evaluate() non-const 2020-03-18 16:28:15 +01:00
Kamil Śliwak
0913fd1aac [yul-phaser] Extract ProgramBasedMetric base class from ProgramSize 2020-03-18 16:28:15 +01:00
Kamil Śliwak
bdc4d1ccd1 [yul-phaser] ProgramSize metric: Refactor repeating parts of test code
- Also replace test fixture constructor with direct member initialisation
2020-03-18 16:28:15 +01:00
chriseth
1c25104741
Merge pull request #8423 from imapp-pl/yul-phaser-population-and-algorithm-options
[yul-phaser] Population and algorithm options
2020-03-18 16:05:38 +01:00
chriseth
906a3bb28d
Merge pull request #8442 from a3d4/fix-8244-refactor-testcase-classes
Refactor TestCase classes
2020-03-18 15:39:09 +01:00
Kamil Śliwak
a2821db1dd [yul-phaser] Phaser: Tests for factories 2020-03-18 13:30:58 +01:00
Kamil Śliwak
18f0d6eb94 [yul-phaser] AlgorithmRunner: Duplicate chromosome randomisation 2020-03-18 13:30:58 +01:00
Kamil Śliwak
1b5960111d [yul-phaser] AlgorithmRunner: Population autosave 2020-03-18 13:30:58 +01:00
Kamil Śliwak
ff99d25bc3 [yul-phaser] Common: Add readLinesFromFile() 2020-03-18 13:30:58 +01:00
Kamil Śliwak
5e814acc3c [yul-phaser] TestHelpers: Add TemporaryDirectory class 2020-03-18 13:30:58 +01:00
a3d4
a5ae51fa6e Unified dialect selection in libyul/SyntaxTest and YulOptimizerTest. 2020-03-16 23:22:57 +01:00
a3d4
bb38ce1759 Decoupled error checking and report printing in CommonSyntaxTest. 2020-03-16 23:22:56 +01:00
a3d4
66783c30ce Introduced TestCaseReader. 2020-03-16 23:14:33 +01:00
Kamil Śliwak
8ca0d90aae [yul-phaser] Returning an ErrorList from Program::load() if program has errors and printing them in Phaser 2020-03-16 20:32:59 +01:00
chriseth
d45e6aa24c
Merge pull request #8421 from imapp-pl/yul-phaser-refactor-main
[yul-phaser] Refactoring in main
2020-03-16 16:31:26 +01:00
chriseth
4e4a3da920
Merge pull request #8481 from aarlt/add-show-metadata
Add --show-metadata to enable metadata output.
2020-03-16 14:25:42 +01:00
Djordje Mijovic
96d278b101 [Sol->Yul] Adding slicing for call data arrays 2020-03-13 13:40:38 +01:00
Kamil Śliwak
deaf1d0c6f [yul-phaser] Add serializeChoice() and deserializeChoice() 2020-03-13 11:21:23 +01:00
Kamil Śliwak
0c3de9ef99 [yul-phaser] Add Common module 2020-03-13 11:21:23 +01:00
Kamil Śliwak
099299c5e7 [yul-phaser] Rename Common to Helpers in tests (update references) 2020-03-13 11:21:23 +01:00
Kamil Śliwak
d01dab7b7c [yul-phaser] Rename Common to Helpers in tests (file move)
- I want to add Common.h in the non-test code and it's getting confusing. I think it's better to have them named differently.
2020-03-13 11:21:23 +01:00
Kamil Śliwak
2110bf10cf [yul-phaser] AlgorithmRunner: Create a structure to store runner's options 2020-03-13 11:21:23 +01:00
Kamil Śliwak
b8244f6a43 [yul-phaser] Extract the code that controls execution of algorithm rounds from GeneticAlgorithm into AlgorithmRunner 2020-03-13 11:21:23 +01:00
Alexander Arlt
9d67edb163 Add --show-metadata to enable metadata output. 2020-03-12 13:39:29 -05:00
chriseth
fa148f2483 Parsing of immutable state variable. 2020-03-12 17:11:24 +01:00
chriseth
f8f18f2e55
Merge pull request #8480 from a3d4/fix-8418-astutils-compiler-error
Replaced "assert" with "if"
2020-03-12 15:19:54 +01:00
chriseth
47b72032c6
Merge pull request #8328 from imapp-pl/yul-phaser-gewep-algorithm
[yul-phaser] GEWEP algorithm
2020-03-12 14:54:33 +01:00
a3d4
a86c511713 Replaced "assert" with "if" (incorrect contract code is not supposed to trigger asserts). 2020-03-12 14:03:27 +01:00
Daniel Kirchner
bdd8045db5
Merge pull request #8183 from ethereum/functionOptionsYulIR
[YulIR] Function call options for Yul IR
2020-03-12 10:49:51 +01:00
Leonardo Alt
89ce2dbfe9 The identifier var should be fine in Yul 2020-03-11 18:45:08 +01:00
Leonardo
07ab4c80c4
Merge pull request #8323 from ethereum/smt_split_3
[SMTChecker] CHC support to internal function calls
2020-03-11 18:37:45 +01:00
Leonardo Alt
07368c2e1e Add support to internal function calls 2020-03-11 16:29:07 +01:00
Djordje Mijovic
37878cf8d2 Adding support for ipfs large files. 2020-03-11 13:55:46 +01:00
chriseth
5dd30777d2 Test. 2020-03-10 22:44:06 +01:00
Leonardo Alt
bcefda747c Do not run smtCheckerTestsJSON if no solver available 2020-03-10 15:41:49 +01:00
Leonardo Alt
1b17815808 SMTChecker docs test may issue a warning 2020-03-10 15:41:49 +01:00
Christian Parpart
bb29a7e497
Merge pull request #8460 from ethereum/yulutil-convert-array
YulUtilFunctions: convertionFunction() to also handle array string/memory casts
2020-03-10 14:00:34 +01:00
Christian Parpart
5d7a370248 YulUtilFunctions: convertionFunction() to also handle array string/memory casts. 2020-03-10 11:21:12 +01:00
chriseth
8d2a9bf773
Merge pull request #8458 from a3d4/partfix-8244-introduced-testcase-shouldrun
Partial Fix #8244: Introduced TestCase::shouldRun().
2020-03-09 18:35:12 +01:00
chriseth
f6c0a8978d
Merge pull request #8428 from ethereum/assemblyControlFlow
Control flow analysis for inline assembly.
2020-03-09 18:27:00 +01:00
Leonardo
3896aa75cc
Merge pull request #8426 from ethereum/fix-7948
ossfuzz: Update README.md with steps to build fuzzers via docker
2020-03-09 16:41:10 +01:00
Daniel Kirchner
809e3503ba Control flow analysis for inline assembly. 2020-03-09 16:23:10 +01:00
a3d4
29b770c434 Introduced TestCase::shouldRun(). 2020-03-09 15:52:20 +01:00
chriseth
b7c001eb7f
Merge pull request #8416 from ethereum/reuseYulCalldataTailAccess
Fix yul calldata tail access functions and reuse them for old codegen.
2020-03-09 15:10:48 +01:00
Kamil Śliwak
763bdb1d51 [yul-phaser] Change the design of crossover operators so that they produce a single chromosome rather than a pair 2020-03-09 13:21:48 +01:00
Kamil Śliwak
fc4fedb214 [yul-phaser] Add GenerationalElitistWithExclusivePools algorithm 2020-03-09 13:21:48 +01:00
cameel
7e80ac861f [yul-phaser] Population: Add mutate() and crossover() methods 2020-03-09 13:21:48 +01:00
Kamil Śliwak
92b54d83a3 [yul-phaser] Common: Add geneSubstitution() mutation 2020-03-09 13:21:48 +01:00
Kamil Śliwak
c941eaf5d6 [yul-phaser] Add randomPointCrossover() and fixedPointCrossover() operators 2020-03-09 13:21:48 +01:00
cameel
3fdb4ca607 [yul-phaser] Add geneRandomisation(), geneDeletion(), geneAddition and alternativeMutations() 2020-03-09 13:21:48 +01:00
Kamil Śliwak
643a5f2035 [yul-phaser] Common: Add wholeChromosomeReplacement() mutation and countDifferences() 2020-03-09 13:21:48 +01:00
Kamil Śliwak
f9f2bdb5f7 [yul-phaser] Add RandomPairSelection and PairMosaicSelection classes 2020-03-09 13:21:48 +01:00
chriseth
37e01a19c0 Fix scoping following try/catch. 2020-03-09 13:14:13 +01:00
chriseth
4a4c1a7ba7
Merge pull request #8402 from ethereum/fix-8401
Update solidity fuzzing dictionary with >0.6.0 keywords
2020-03-09 11:38:18 +01:00
Christian Parpart
988bd6780b
Merge pull request #8414 from ethereum/sol2yul-func-type-conversion
[Sol2Yul] Implements function-to-function cast.
2020-03-09 11:31:44 +01:00
Christian Parpart
e210026e74 [Sol2Yul] Implements function-to-function cast. 2020-03-09 10:40:57 +01:00
Bhargava Shastry
2153a1ef1d Update test/tools/ossfuzz/README.md
Address review comments
2020-03-09 10:38:19 +01:00
chriseth
a328e940b5
Merge pull request #8429 from ethereum/astJsonImportYulBlock
Fix yul ast import for blocks, switches and string literals.
2020-03-08 17:06:05 +01:00
Daniel Kirchner
e58a1de57f
Merge pull request #8431 from mijovic/sol2YulSelectorAddress
Adding sol->yul for f.selector and f.address
2020-03-06 22:48:38 +01:00
Djordje Mijovic
092827b7ad Adding sol->yul for f.selector and f.address 2020-03-06 21:43:14 +01:00
Daniel Kirchner
2df5ca0774
Merge pull request #8385 from ethereum/immutable
Immutable state variables (1)
2020-03-06 14:20:13 +01:00
Daniel Kirchner
7f38cbb91d Fix calling unimplemented base function. 2020-03-06 10:51:16 +01:00
Daniel Kirchner
420f57aec3 Fix yul ast import for blocks, switches and string literals. 2020-03-05 14:09:13 +01:00
Bhargava Shastry
7483c6f13e ossfuzz: Update README.md with steps to build fuzzers via docker 2020-03-05 10:43:31 +01:00
Daniel Kirchner
b10f12a395
Merge pull request #8413 from mijovic/depratateValueCalls
Deprecated warning for .value() and .gas() on function and constructr…
2020-03-04 14:43:06 +01:00
Daniel Kirchner
919888ddbc Use yul function for calldata tail access, fix checks and add additional revert reason. 2020-03-04 14:39:36 +01:00
Christian Parpart
a3bc752e53
Merge pull request #8415 from ethereum/tests-ExecutionFramework-reset
[test] Fixes ExecutionFramework providing different contract addresse…
2020-03-04 14:17:11 +01:00
Djordje Mijovic
58c6b90705 Deprecated warning for .value() and .gas() on function and constructror calls 2020-03-04 12:51:49 +01:00