Commit Graph

7353 Commits

Author SHA1 Message Date
chriseth
d0b82fe854
Merge pull request #8869 from ethereum/useSlotes
Use vector of slots.
2020-05-07 19:03:59 +02:00
chriseth
f38cf85482 Use vector of slots. 2020-05-07 17:54:04 +02:00
chriseth
4058ce8fe5
Merge pull request #8870 from ethereum/fix-conflicting-symbols-in-yulopti-and-optimiser-suite
Fix conflicting symbols in yulopti and OptimiserSuite
2020-05-07 17:40:17 +02:00
Kamil Śliwak
156bfadad3 yulopti: Fix conflict between 'l' in yulopti and OptimiserSuite and make future conflicts less likely
- OptimizerSuite uses letters so switching to punctuation marks in yulopti should help.
2020-05-07 17:27:24 +02:00
Kamil Śliwak
d3d1520870 yulopti: Add an error message to assetion triggered when an optimizer step abbreviation conflicts with yulopti controls 2020-05-07 17:21:39 +02:00
Kamil Śliwak
3e9fa7e388 yulopti: Print errors to stderr rather than stdout 2020-05-07 17:16:50 +02:00
Mathias Baumann
eb4926cb48 run addMissingFunctions only once 2020-05-07 17:06:11 +02:00
chriseth
3212cb6caa
Merge pull request #8859 from ethereum/noRuntimeForImmutable
trigger error when runtimeCode is called on contracts with immutables
2020-05-07 16:08:27 +02:00
chriseth
f42dc70c9f
Merge pull request #8863 from ethereum/nonReversedEncoder
Introduce non-reversed version of tupleEncoder.
2020-05-07 15:47:32 +02:00
Mathias Baumann
50e59f1008 trigger error when runtimeCode is called on contracts with immutables 2020-05-07 15:10:04 +02:00
chriseth
e986fde0c1 Introduce non-reversed version of tupleEncoder. 2020-05-07 15:08:09 +02:00
a3d4
5e9502bfae Fix ABI internal compiler error caused by an internal constructor 2020-05-07 05:49:49 +02:00
Alex Beregszaszi
327c75bc1b IR generation for shifts 2020-05-06 19:14:23 +02:00
Christian Parpart
3a93080ca9
Merge pull request #8821 from ethereum/remove-flag
Remove obsolete flag --optimize-yul from scripts
2020-05-06 16:20:23 +02:00
chriseth
76275cf34a
Merge pull request #8824 from ethereum/solYulDirtyMemory
Fix accessing memory reference types in yul codegen and clean up on memory reads.
2020-05-06 16:17:19 +02:00
Daniel Kirchner
234ffcf278
Merge pull request #8718 from ethereum/irConstants
IR generation for constants.
2020-05-06 16:05:17 +02:00
Mathias Baumann
02c5f1f748 Remove --optimize-yul flag for soltest 2020-05-06 11:49:40 +02:00
Daniel Kirchner
c25a3eba14 Fix accessing memory reference types in yul codegen and clean up on memory reads. 2020-05-06 11:34:11 +02:00
chriseth
4c1e821e01
Merge pull request #8845 from ethereum/solYulCleanup
[Sol->Yul] Cleanup for checked arithmetic and comparisons.
2020-05-05 17:58:36 +02:00
Harikrishnan Mulackal
92cf61d4f9 fixed compilation tests and upgraded ext. tests branch 2020-05-05 21:11:15 +05:30
Harikrishnan Mulackal
a207613f17 Docs, changelog and tests 2020-05-05 21:11:15 +05:30
Daniel Kirchner
b580106c80 Yul parser hack and more yul tests. 2020-05-05 17:23:41 +02:00
chriseth
02c20698c9 IR generation for constants. 2020-05-05 17:07:55 +02:00
Daniel Kirchner
7b48c120b5 Always enforce via yul for isoltest runs. 2020-05-05 14:08:59 +02:00
Daniel Kirchner
28d25afab1 Cleanup tests for Sol->Yul arithmetic and comparison. 2020-05-05 13:38:31 +02:00
Harikrishnan Mulackal
dd7d63925a
Merge pull request #8806 from ethereum/natspec-constructor
[BREAKING] Natspec constructor and functions have consistent userdoc
2020-05-05 15:47:34 +05:30
Djordje Mijovic
e8f6f63e77 [Sol2Yul] Adding support for builtin revert(string) 2020-05-05 07:05:39 +02:00
Djordje Mijovic
8b7f87eed5 [isoltest] Enforcing compileViaYul to be set if test can pass via yul 2020-05-05 00:38:13 +02:00
chriseth
ecbf216354 Merge remote-tracking branch 'origin/develop' into breaking 2020-05-04 18:46:45 +02:00
chriseth
1aef9c7d20
Merge pull request #8777 from ethereum/sol_yul_simplefunctions
[Sol - Yul] Add some built-in functions.
2020-05-04 16:07:10 +02:00
chriseth
3738cff6e6 Test updates. 2020-05-04 15:00:50 +02:00
chriseth
51ccb1519f Yul codegen for immutables. 2020-05-04 15:00:50 +02:00
Mathias Baumann
debcc8c056 Add setimmutable and loadimmutable to dialect. 2020-05-04 15:00:50 +02:00
hrkrshnn
aa65e9423c Uniform output in functions and constructor NatSpec 2020-05-04 12:39:43 +05:30
Alexander Arlt
a9f4d14010 [Sol - Yul] Add support for send(..) & transfer(..) 2020-05-01 08:32:51 -05:00
Alexander Arlt
151e637336 [Sol - Yul] Add some built-in functions.
- simplifications for GasLeft, Selfdestruct and BlockHash.
- add support for addmod & mulmod.
2020-04-30 14:10:09 -05:00
chriseth
602b29cba7
Merge pull request #8796 from a3d4/fix-8760-typechecker-compiler-error
[Type Checker] Fix internal error when applying unary operators to tuples with empty components
2020-04-29 10:14:15 +02:00
a3d4
3bd15655cb Type Checker: Fix internal error when applying unary operators to tuples with empty components 2020-04-29 02:18:48 +02:00
chriseth
cc3992452f
Merge pull request #8791 from random-internet-cat/fix-8406
Fix broken assertion in ContractCompiler
2020-04-28 19:46:30 +02:00
Jason Cobb
8973732b74
Compare categories instead of types in ContractCompiler(740) 2020-04-28 13:13:45 -04:00
yoni206
4327434d07 Adding bit-vector NOT operation to the opcodes. 2020-04-28 09:43:31 -07:00
chriseth
55e34407d3
Merge pull request #8726 from ethereum/fix-8724
Yul proto spec: Add multiple variable declaration statement
2020-04-28 13:13:07 +02:00
chriseth
1fe55370f4 Merge remote-tracking branch 'origin/develop' into HEAD 2020-04-28 13:02:06 +02:00
hrkrshnn
a58b5b2bbe Changed repo to upstream; branches to latest 2020-04-28 16:03:52 +05:30
hrkrshnn
bd0b06e8db Tests, Docs and Changelog 2020-04-28 16:03:52 +05:30
Djordje Mijovic
f3f729549d [Sol->Yul] Enabling creation function call 2020-04-27 16:15:57 +02:00
Alex Beregszaszi
99aa821410
Merge pull request #8720 from ethereum/irSha256
IR generation for sha256.
2020-04-27 13:44:26 +01:00
chriseth
3828adbbbd
Merge pull request #8761 from ethereum/conditonalStrings
Conditional strings for Whiskers.
2020-04-27 14:07:30 +02:00
Bhargava Shastry
5113af1df0 Update test/tools/ossfuzz/protoToYul.h
Co-Authored-By: Leonardo <leo@ethereum.org>
2020-04-27 14:01:11 +02:00
Bhargava Shastry
62e5ccec90 Minor code factoring to clarify for init scope extension 2020-04-27 14:01:11 +02:00
Bhargava Shastry
7280ed716a Yul proto spec: Add multiple variable declaration statement 2020-04-27 14:01:11 +02:00
chriseth
5b92dedeed
Merge pull request #8753 from a3d4/fix-sourcereferenceformathuman-leftpad
Fix leftpad in SourceReferenceFormatterHuman
2020-04-27 11:22:14 +02:00
chriseth
dda883b585 IR generation for sha256. 2020-04-27 11:10:20 +02:00
chriseth
aa8107f45a Conditional strings for Whiskers. 2020-04-27 11:07:56 +02:00
chriseth
61b1369fc2
Merge pull request #8701 from ethereum/solc-yul-chromosome
solc option for selecting yul optimisations
2020-04-27 10:44:14 +02:00
Alexander Arlt
66edaf43f4 [Sol - Yul] Add support for built-in logN(). 2020-04-25 11:10:28 -05:00
Alexander Arlt
2fa26f4e92 [Sol - Yul] Add support for built-in selfdestruct(..). 2020-04-24 17:03:41 -05:00
Kamil Śliwak
c8b612536f Add yulDetails.optimizerSteps to the standard JSON interface 2020-04-24 17:30:56 +02:00
Kamil Śliwak
35cc64e33d Add --yul-optimizations option to the command-line interface 2020-04-24 17:30:56 +02:00
Kamil Śliwak
c41a832f65 Move the default optimisation steps from OptimiserSuite to OptimiserSettings
- Now it's a mandatory parameter in OptimiserSuite::run()
2020-04-24 17:30:56 +02:00
chriseth
dd7aebe7f1
Merge pull request #8769 from ethereum/fix-cmdlinetests-not-removing-tmp-all-files
Fix cmdlineTests.sh not removing all tmp.XXXXXX files
2020-04-24 15:35:17 +02:00
Kamil Śliwak
172b6c245f cmdlineTests.sh: Fix the script not removing all temporary files it creates in /tmp
- The script was leaving hundreds of loose `tmp.XXXXXX` and `tmp.XXXXXX.bak` files in `/tmp` after each run
- There's a trap handler that removes them but it's being registered multiple times in a loop and only the last one actually runs when the script exits. It's still useful because it removes the remaining files from the most recent iteration but on its own it's not enough to clean up everything.
2020-04-24 15:09:26 +02:00
Kamil Śliwak
d3da878200 Enable internal library calls 2020-04-24 15:00:51 +02:00
Kamil Śliwak
56a85d6cb3 IRGeneratorForStatements: Handle internal calls to functions from specific base contracts as static calls rather than calls via pointers 2020-04-24 15:00:16 +02:00
chriseth
2b39f3b988
Merge pull request #8766 from ethereum/sol_yul_gasleft
[Sol - Yul] Add support for built-in gasleft().
2020-04-24 14:24:01 +02:00
Leonardo Alt
059d0bdebb Revert "Use Spacer option to improve performance of constant arrays"
This reverts commit 92059fa848.
2020-04-24 11:55:58 +02:00
a3d4
8717c073a6 Fix leftpad in SourceReferenceFormatterHuman 2020-04-24 00:34:24 +02:00
Alexander Arlt
aafa4583df [Sol - Yul] Add support for built-in gasleft(). 2020-04-23 17:14:03 -05:00
Kamil Śliwak
e65a5a562e IRGenerationContext::internalDispatch(): Fix code generated when the function called via pointer does not return anything 2020-04-23 21:16:41 +02:00
chriseth
d136e7dc95 Rules for optimizing idempotency for bitwise operations. 2020-04-23 14:21:00 +02:00
chriseth
ed2a42610b
Merge pull request #8730 from ethereum/reduceMultipleConsecutiveLines
Yul formatting: Reduce multiple consecutive empty lines to a single one.
2020-04-23 14:11:09 +02:00
chriseth
d25b16ed55
Merge pull request #8737 from ethereum/yulProtoDisallowEmpty
Disallow statements containing empty blocks e.g., empty if, for etc.
2020-04-23 14:10:36 +02:00
hrkrshnn
48ff9fd4d6 Tests, Changelog and updated grammar 2020-04-23 17:27:37 +05:30
hrkrshnn
e2e32d372f virtual modifiers (in Abstract contracts) allow empty bodies 2020-04-23 17:26:59 +05:30
chriseth
0c5aa36e46
Merge pull request #8516 from imapp-pl/yul-phaser-crossover-operators
[yul-phaser] Crossover operators
2020-04-23 13:50:39 +02:00
chriseth
f82f167290 Yul formatting: Reduce multiple consecutive empty lines to a single one. 2020-04-23 13:49:12 +02:00
chriseth
35eae96a7f Move helper up and avoid trailing spaces. 2020-04-23 13:16:26 +02:00
chriseth
16ed53ddd0
Merge pull request #8591 from mijovic/sol2YulConstructorParams
[Sol2Yul] Adding support for constructors with parameters (inheritance)
2020-04-23 12:56:54 +02:00
chriseth
a371910674
Merge pull request #8642 from ethereum/interfaceid
Add support for interfaceId.
2020-04-23 12:24:49 +02:00
chriseth
5a160be128
Merge pull request #8754 from ethereum/smt_improve_array_performance
Use Spacer option to improve performance of constant arrays
2020-04-23 12:19:04 +02:00
chriseth
18ee96ac91
Merge pull request #8752 from a3d4/fix-8711-typechecker-compiler-error
Type Checker: Fix internal error when assigning to empty tuples
2020-04-23 12:01:00 +02:00
Leonardo Alt
92059fa848 Use Spacer option to improve performance of constant arrays 2020-04-23 10:45:02 +02:00
Bhargava Shastry
f78414b333 Disallow statements containing empty blocks e.g., empty if, for, function definition 2020-04-23 10:07:36 +02:00
a3d4
c4bc77874b Disallow empty tuples on the left hand side 2020-04-23 07:02:04 +02:00
a3d4
9538024c81 Fix #8711, #8277 2020-04-23 05:57:35 +02:00
Leonardo Alt
cfe3686116 Fix internal error when using array slices 2020-04-22 23:20:10 +02:00
chriseth
6728e3ef94 Merge remote-tracking branch 'origin/develop' into breaking 2020-04-22 17:21:32 +02:00
Djordje Mijovic
5329da93fb [Sol2Yul] Adding support for constructors with parameters in case of inheritance 2020-04-22 14:47:08 +02:00
chriseth
4908101ad7 Yul IR generation for member access to type types. 2020-04-22 11:25:27 +02:00
Leonardo Alt
606153ba71 Add optimizer rules for repeated and 2020-04-22 10:20:59 +02:00
chriseth
6900544f0d
Merge pull request #8651 from a3d4/modify-evmone-version
Update evmone version to v0.4 in docs and scripts
2020-04-20 16:49:10 +02:00
chriseth
1d8e742296
Merge pull request #8684 from ethereum/yulForSelector
Yul codegen for `.selector`.
2020-04-20 16:32:11 +02:00
chriseth
41ef13129b
Merge pull request #8678 from ethereum/smt_remove_redundant_constraints
[SMTChecker] Remove redundant CHC constraints
2020-04-20 15:44:59 +02:00
Kamil Śliwak
d9e2735361 [yul-phaser] Add options for selecting crossover operator used by the algorithms 2020-04-20 15:30:10 +02:00
Kamil Śliwak
1ada2a52fb [yul-phaser] Mutations: Add two-point and uniform crossover operators 2020-04-20 15:30:10 +02:00
chriseth
55483445e9
Merge pull request #8663 from ethereum/ir-function-generation-queue
[Sol->Yul] IR function generation queue (refactor)
2020-04-20 15:17:53 +02:00
chriseth
00a53c95e3
Merge pull request #8694 from ethereum/out-of-tree-build-dir
Out-of-tree SOLIDITY_BUILD_DIR
2020-04-20 15:15:52 +02:00
Bhargava Shastry
ea5b64ca9e Fuzzer: Permit linking of libraries in compilation framework 2020-04-20 14:28:38 +02:00
chriseth
c24c4f85e4
Merge pull request #8665 from ethereum/recursiveStructRefactoring
Recursive struct refactoring and a bunch of ICE fixes.
2020-04-20 13:24:19 +02:00
Kamil Śliwak
3e65bcfd7f Allow SOLIDITY_BUILD_DIR outside of REPO_ROOT in scripts that respect this variable 2020-04-17 19:09:22 +02:00
Kamil Śliwak
3180e6c5a2 cmdlineTests.sh: Fix missing details in some error messages
- As far as I know $STDERR is not a standard shell variable and it's not defined in the file either.
2020-04-17 15:45:17 +02:00
Kamil Śliwak
c7947c1af6 Implement lazy function generation using function generation queue 2020-04-17 13:28:07 +02:00
Alexander Arlt
3754a86ab2 Add support for interfaceID. 2020-04-16 12:17:40 -05:00
Daniel Kirchner
150497c12a Stricter bounds for memory arrays. 2020-04-16 17:51:18 +02:00
Daniel Kirchner
f6d1cee06b Ensure that public callable parameters are valid for calldata. 2020-04-16 17:23:20 +02:00
Daniel Kirchner
6093982606 Review suggestions. 2020-04-16 16:42:12 +02:00
Daniel Kirchner
3a5a4c6505 Another ICE test. 2020-04-16 16:42:12 +02:00
Daniel Kirchner
6f06154eb5 Move direct struct recursion check to detect recursion in global structs. 2020-04-16 16:42:12 +02:00
Daniel Kirchner
b744a56801 Refactoring of errors and fixes for various ICEs. 2020-04-16 16:42:12 +02:00
Daniel Kirchner
df1809f8da Annotate struct definitions with a recursive flag. 2020-04-16 16:42:12 +02:00
chriseth
f271dfa2e2 Yul codegen for .selector. 2020-04-16 13:42:58 +02:00
chriseth
06adbc2c59 Implement bit operations. 2020-04-16 00:33:45 +02:00
Leonardo Alt
bca43586c6 [SMTChecker] Remove redundant CHC constraints 2020-04-15 18:11:39 +02:00
Daniel Kirchner
b86c927505 Disallow virtual and override for constructors. 2020-04-15 13:58:37 +02:00
Daniel Kirchner
95349b3634
Merge pull request #8672 from ethereum/fixYulEmptyTupleAssign
Fix tuple assignments for empty tuples in Yul IR.
2020-04-15 12:36:46 +02:00
chriseth
aff1e93caa
Merge pull request #8571 from aarlt/clang-tidy-apply-modernize-pass-by-value
clang-tidy: Apply modernize-pass-by-value.
2020-04-15 12:06:25 +02:00
chriseth
703b6efb55
Merge pull request #8515 from imapp-pl/yul-phaser-classic-genetic-algorithm
[yul-phaser] Classic genetic algorithm
2020-04-15 12:01:51 +02:00
Daniel Kirchner
0c5c93f3c2 Fix tuple assignments for empty tuples in Yul IR. 2020-04-15 11:10:52 +02:00
Christian Parpart
d00d3c45b1 [Sol2Yul] Implements codegen part for try/catch statements. 2020-04-14 18:42:37 +02:00
Alexander Arlt
aac7a1e434 Apply modernize-pass-by-value. 2020-04-14 10:32:13 -05:00
a3d4
760ae7f584 Update evmone version to v0.4 in docs and scripts 2020-04-14 14:34:47 +02:00
Daniel Kirchner
c47714f0ba Update ASTJSON tests that fail to compile. 2020-04-14 10:59:28 +02:00
Daniel Kirchner
3af43fd350 Extract typing. 2020-04-14 10:59:28 +02:00
chriseth
a7a1feb1b8
Merge pull request #8626 from ethereum/immutable-functioncallgraph
Prepare literalArguments for immutable builtin functions
2020-04-09 15:46:02 +02:00
Mathias Baumann
5203503583 Allow for per-parameter literalValues builtin functions 2020-04-08 16:41:38 +02:00
chriseth
748afe0edd
Merge pull request #8630 from ethereum/encoding-bug-functionCallOption
TypeChecker error when encoding functions with call options; tests
2020-04-08 16:33:24 +02:00
chriseth
9fab9df18c
Merge pull request #8607 from a3d4/fix-nested-tuples
Fixed nested tuples on the right-hand side.
2020-04-08 12:29:52 +02:00
a3d4
aba0b2957c Fix tuple assignments with multi-slot components. 2020-04-07 18:39:25 +02:00
chriseth
baefab78d8
Merge pull request #8628 from ethereum/fiximmutableastexport
Export immutability.
2020-04-07 18:37:09 +02:00
hrkrshnn
229587672f TypeChecker error when encoding functions with call options; tests 2020-04-07 21:11:46 +05:30
chriseth
236eff8416 Export immutability. 2020-04-07 17:30:54 +02:00
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
chriseth
51883958ab Merge remote-tracking branch 'origin/develop' into breaking 2020-04-07 11:14:28 +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
hrkrshnn
7e2cb9b57c Removed virtual from a library function in gnosis test 2020-04-03 15:49:50 +05:30
Daniel Kirchner
d68c526eaa Disallow external function pointers as immutables. 2020-04-03 11:56:51 +02:00
hrkrshnn
042ccd24ab Added error message for virtual (library) functions; test case 2020-04-03 15:09:57 +05:30
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
chriseth
7d68f9f6c3 Merge remote-tracking branch 'origin/develop' into breaking 2020-03-24 13:35: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
chriseth
9d92c9fbf1 Merge remote-tracking branch 'origin/develop' into HEAD 2020-03-11 18:44:06 +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
Christian Parpart
495abee769 [test] Fixes ExecutionFramework providing different contract addresses when running test cases for both, old and new yul codegen. 2020-03-03 16:36:12 +01:00
Leonardo
32ca1a5e26
Merge pull request #8311 from ethereum/smt_split_2
[SMTChecker] Change CHC encoding from explicit CFG to function forests
2020-03-03 13:16:14 +01:00
Leonardo Alt
3bee348525 Change CHC encoding to functions forest instead of explicit CFG 2020-03-03 12:12:26 +01:00
Leonardo Alt
96a230af50 [SMTChecker] Fix ICEs with tuples 2020-03-03 11:35:58 +01:00
chriseth
f10c6500b2 Immutable is not reserved anymore. 2020-03-02 14:20:17 +01:00
Bhargava Shastry
ed02aae1d9 Update solidity fuzzing dictionary with >0.6.0 keywords 2020-02-28 15:46:21 +01:00
chriseth
06ad5b3200 Merge remote-tracking branch 'origin/develop' into HEAD 2020-02-27 15:06:36 +01:00
Erik Kundt
d1b6a4a649 Fixes raw bytes warning in semantic test framework. 2020-02-26 21:37:52 +01:00
chriseth
426c4a2e38
Merge pull request #8327 from imapp-pl/yul-phaser-random-algorithm
[yul-phaser] Random algorithm
2020-02-26 14:44:24 +01:00
Leonardo
6930e0c2e0
Merge pull request #8384 from ethereum/fixRePrintingValue
Fix re-printing value expectations.
2020-02-26 09:57:30 +01:00
chriseth
bb09787bd0
Merge pull request #8378 from mijovic/yulSourceLocations
Adding source location support to AssemblyStack
2020-02-25 22:34:57 +01:00
Djordje Mijovic
ec083c4878 Adding source location support to AssemblyStack and thus debugging Yul sources 2020-02-25 22:19:03 +01:00
chriseth
c5a0a434e2
Merge pull request #8374 from ethereum/writeAccessToSlot
Allow access to ``_slot`` for local storage pointer variables.
2020-02-25 22:11:13 +01:00
chriseth
40cae442d5 Fix re-printing value expectations. 2020-02-25 22:10:35 +01:00
Kamil Śliwak
e1b8b64f05 [yul-phaser] Population: Remove no longer used methods for running algorithm steps
- They have been superseded by objects from GeneticAlgorithms.h
2020-02-25 16:06:16 +01:00
cameel
67fbafab8f [yul-phaser] Add RandomAlgorithm 2020-02-25 16:06:16 +01:00
cameel
4665b7a7e4 [yul-phaser] Population: Add select() method 2020-02-25 15:25:16 +01:00
cameel
83b8ab8012 [yul-phaser] Add RangeSelection, MosaicSelection and RandomSelection classes 2020-02-25 15:25:16 +01:00
cameel
11bdf358df [yul-phaser] Base class for genetic algorithms 2020-02-25 15:25:16 +01:00
Kamil Śliwak
26bae6b459 [yul-phaser] Common: Add countSubstringOccurrences() 2020-02-25 15:25:16 +01:00
chriseth
45041e5d3a Allow access to `_slot` for local storage pointer variables. 2020-02-25 14:28:04 +01:00
Djordje Mijovic
8524e3f48d Standard-JSON-Interface: Fix a bug (#8371) related to empty filenames and imports. 2020-02-25 01:07:36 +01:00
Leonardo
44bcff42f5
Merge pull request #8161 from ethereum/yulTypeChecking
Yul type checking
2020-02-24 16:05:04 -03:00
Djordje Mijovic
c891597204 Adding ssa type check and test for that one 2020-02-24 15:05:19 +01:00
Djordje Mijovic
2efda4129b Adding test for multi return values including bool in evmTyped dialect. Calling zeroLiteralForType from inliner 2020-02-24 15:05:19 +01:00
chriseth
bddbcbe6a4 Use bool type in word size transform. 2020-02-24 15:05:19 +01:00
chriseth
a52305d3bd Use bool type in conditional simplifier and for loop condition into body. 2020-02-24 15:05:19 +01:00
Djordje Mijovic
a52c9af5b9 Adding vardecl optimization for boolean types 2020-02-24 15:05:19 +01:00
chriseth
b9b36cd89e Properly assign types in ExpressionSplitter. 2020-02-24 15:05:19 +01:00
chriseth
2ee748b7f5 Add tests 2020-02-24 15:05:19 +01:00
chriseth
9140bc52c4 Tests for invalid types. 2020-02-24 15:05:18 +01:00
chriseth
6eec968365 Test updates. 2020-02-24 15:05:18 +01:00
chriseth
449a8533ce
Merge pull request #8340 from mijovic/value-keyword-wei
TestFileParser: Adding keyword wei for expressing function call value
2020-02-24 15:01:15 +01:00
Djordje Mijovic
dd9009eba6 TestFileParser: Adding new keyword wei for expressing function value 2020-02-21 11:39:37 +01:00
cameel
2291cf78ac [yul-phaser] Population: Add constructors to Individual to simplify initialization 2020-02-19 17:26:34 +01:00
cameel
cef01c961a [yul-phaser] Population: Keep the individuals always sorted 2020-02-19 17:26:34 +01:00
cameel
76842ac3fd [yul-phaser] Population: Evaluate fitness immediately when an individual is added or modified
- This removes the explicit evaluation phase.
- Fitness is no longer optional in Individual
2020-02-19 17:26:34 +01:00
cameel
66fdc1c374 [yul-phaser] Population: Store fitness metric rather than program directly
- In the console app use ProgramSize metric when creating the population.
2020-02-19 17:03:35 +01:00
Kamil Śliwak
930a9918a6 [yul-phaser] ProgramSize: Add an option to repeat the optimisation sequence several times 2020-02-19 16:36:14 +01:00
Kamil Śliwak
751caf0ed3 [yul-phaser] Common: Add ChromosomeLengthMetric 2020-02-19 16:36:14 +01:00
cameel
2238919c76 [yul-phaser] Add ProgramSize metric 2020-02-19 16:36:14 +01:00
cameel
096129fbc4 [yul-phaser] Base class for fitness metrics 2020-02-19 16:36:14 +01:00
chriseth
357c936243
Merge pull request #8325 from imapp-pl/yul-phaser-population-tweaks
[yul-phaser] Miscellaneous Population tweaks and improvements
2020-02-19 12:35:10 +01:00
chriseth
8f2c5fc081
Merge pull request #8287 from a3d4/cmdlinetests-mingw
Adapted cmdlineTests.sh for MinGW
2020-02-19 11:50:24 +01:00
a3d4
4a29726f76 Adjusted solc path and fixed remapping tests in cmdlineTests.sh under mingw64. 2020-02-19 06:05:11 +01:00
cameel
d9c5e2dc9f [yul-phaser] Population: Add operator+() 2020-02-18 19:40:37 +01:00
Kamil Śliwak
ecb30c670f [yul-phaser] Population: Make ordering of individuals with same fitness deterministic and prioritise shorter chromosomes
- Before this change the order of chromosomes with the same fitness in a population depended on the initial order set when the population was first created. Now it only depends on the individual.
- The length comparison is not strictly necessary (lexicographical order covers that) but it makes the intention clear and the comparison slightly faster when chromosomes have different lengths.
2020-02-18 19:40:37 +01:00
Kamil Śliwak
40a6669538 [yul-phaser] Population: Extract a function for comparing fitness of individuals
- Mostly for readability and convenience. This significantly shortens calls to sort().
- I could define it as Individual::operator< instead but it would be inconsistent with operator== because it does not compare the chromosomes, only fitness. It could result in an unintuitive situation where (a <= b <= a) does not necessarily imply (a == b).
2020-02-18 19:40:37 +01:00
Kamil Śliwak
823e715902 [yul-phaser] Population+Chromosome: Better tests for makeRandom() 2020-02-18 19:40:37 +01:00
Kamil Śliwak
806891f494 [yul-phaser] Population: Customizable chromosome length in makeRandom() 2020-02-18 19:40:37 +01:00
Kamil Śliwak
e771f00971 [yul-phaser] Population: Extract Program construction in tests into a fixture 2020-02-18 19:38:55 +01:00
Kamil Śliwak
d22c59aa0e [yul-phaser] Chromosome: Add a constructor that reads steps from an abbreviation string 2020-02-18 19:38:55 +01:00
Kamil Śliwak
38f79a1761 [yul-phaser] Common: Add chromosomeLengths() 2020-02-18 19:38:55 +01:00
Kamil Śliwak
837ea96da7 [yul-phaser] Move stripWhitespace() from Program tests to Common 2020-02-18 19:38:55 +01:00
chriseth
c2e22d4cab
Merge pull request #8221 from ethereum/structured-docs-error-locations
[parser] Source locations for structured documentation errors
2020-02-18 14:57:28 +01:00
chriseth
64f9dc351e
Merge pull request #8337 from mijovic/assembly-multifile
Assembly: Added missing source field to legacy assembly json output
2020-02-18 12:47:19 +01:00
Djordje Mijovic
18dea6b69c Assembly: Added missing source field to legacy assembly json output to complete the source reference 2020-02-18 10:22:34 +01:00
Jason Cobb
6db0d50094
Don't use identifiers starting with an underscore followed by an uppercase letter 2020-02-17 12:44:39 -05:00
chriseth
2d1c4b770f
Merge pull request #8321 from ethereum/removeStackFromAsmAnalysis
Remove stack counting from Asm Analysis.
2020-02-17 14:32:17 +01:00
chriseth
c50631d4e2 Update tests. 2020-02-17 12:58:06 +01:00
chriseth
29e5cd89be Remove stack counting from Asm Analysis. 2020-02-17 12:58:05 +01:00
Kamil Śliwak
f29d3655f7 [yul-phaser] SimulationRNG: Add bernoulliTrial() 2020-02-16 02:18:21 +01:00
Kamil Śliwak
a8fa332a9c [yul-phaser] SimulationRNG: Rewrite uniformInt() and binomialInt() tests to rely on variance and expected value 2020-02-16 02:18:21 +01:00
Kamil Śliwak
db140a667a [yul-phaser] SimulationRNG: Use a single, shared and seedable generator 2020-02-16 02:18:21 +01:00
Kamil Śliwak
342a4e5dee [yul-phaser] Rename Random to SimulationRNG (fix references) 2020-02-16 02:18:21 +01:00
Kamil Śliwak
0d28d5a287 [yul-phaser] Rename Random to SimulationRNG (file move) 2020-02-16 02:18:21 +01:00
Kamil Śliwak
b01766c4db [yul-phaser] Gather functions from Random into SimulationRNG class 2020-02-16 02:18:21 +01:00
Kamil Śliwak
4ee9174454 [yul-phaser] Chromosome: Make randomOptimisationStep() public
- And add tests now that it's public.
2020-02-16 02:18:21 +01:00
Kamil Śliwak
46d69d0941 [yul-phaser] Common: Add enumerateOptimisationSteps() 2020-02-16 02:18:21 +01:00
Kamil Śliwak
957ca00588 [yul-phaser] Common: Add mean() and meanSquaredError() 2020-02-15 22:21:20 +01:00
Kamil Śliwak
94538efc0e [yul-phaser] Add a file for small utilities used in yul-phaser's tests 2020-02-15 22:21:20 +01:00
Kamil Śliwak
40b086774a [yul-phaser] Random: Fix tests allocating more counters than necessary
- The tests weren't broken, just less efficient.
2020-02-15 22:21:20 +01:00
Erik Kundt
017d33cfbe Fix typos in filenames within docstring syntax tests. 2020-02-14 15:53:39 +01:00
Erik Kundt
1d2e1c4f0a Adds command line test for structured doc errors. 2020-02-14 15:53:39 +01:00
Erik Kundt
85fc0b597b Adjusts tests to source locations for structured documentation errors. 2020-02-14 15:53:39 +01:00
chriseth
99f88742d6
Merge pull request #8263 from ethereum/functionSelectorPure
Mark function selectors accessed via declaration as pure.
2020-02-14 12:34:39 +01:00
Daniel Kirchner
9f094d59b9 Mark function selector accesses as pure for pure expressions and mark function accesses via contract name as pure. 2020-02-14 12:33:33 +01:00
Christian Parpart
c92fe69a60 Finishes external call implementation. 2020-02-14 11:59:04 +01:00
Leonardo Alt
3800391a1a [Yul] Support conditionals 2020-02-13 17:02:15 -04:00
Mathias L. Baumann
c635377450
Merge pull request #8313 from ethereum/checkFunctionsExistInIsoltest
Make type error fatal to prevent assert failure at later point
2020-02-13 16:08:13 +01:00
Mathias Baumann
8911b58a6d Make type error fatal to prevent assert failure at later point 2020-02-13 15:16:28 +01:00
Daniel Kirchner
7af581df1f
Merge pull request #8309 from ethereum/checkFunctionsExistInIsoltest
Check that functions exist in isoltest.
2020-02-13 14:29:58 +01:00
chriseth
9aed40ab19 Check that functions exist in isoltest. 2020-02-13 13:22:53 +01:00
chriseth
1ea66fd1f8
Merge pull request #8301 from ethereum/fixPostTypeChecker
PostTypeChecker: ConstStateVarCircularReferenceChecker on function type state variables.
2020-02-12 18:40:19 +01:00
Daniel Kirchner
45f80e9895 Move assertion in PostTypeChecker's ConstStateVarCircularReferenceChecker to account for function type variables 2020-02-12 17:42:27 +01:00
Alexander Arlt
d0eeca8014 Fix CompilerStack::loadMissingSources()
- FatalError Exception was not caught
- fixes #8102
2020-02-12 11:22:11 -05:00
Daniel Kirchner
df0873d138 Implement calldata arrays for Yul IR 2020-02-12 14:00:29 +01:00
Daniel Kirchner
3c9f18b749 Use IRVariable's in IR code generation and implement tuples. 2020-02-12 12:36:14 +01:00
Daniel Kirchner
e786650bef
Merge pull request #8274 from ethereum/structRecursionMapping
Move mapping key checks to ReferencesResolver and make errors fatal.
2020-02-12 11:19:07 +01:00
chriseth
0e100e7e7e
Merge pull request #8267 from ghallak/prune-unnecessary-funcs
[Yul] Prune functions that call each other but are otherwise unreferenced
2020-02-12 11:09:27 +01:00
Gaith Hallak
24d6702986 [Yul] Prune functions that call each other but are otherwise unreferenced 2020-02-11 20:39:32 +03:00
Mathias Baumann
80bd0f47cc Unify optimize yul code in CompilerContext/ContractCompiler 2020-02-11 13:55:47 +01:00
Mathias Baumann
1a3998648c Run yul optimizer on user code without refs 2020-02-11 13:55:47 +01:00
Daniel Kirchner
9c3151748e Move mapping key checks to ReferencesResolver and make them fatal. 2020-02-11 13:35:23 +01:00
Bhargava Shastry
79f1917422 yul proto fuzzer: Refactor dataoffset/size specification 2020-02-11 13:58:36 +05:30
chriseth
d033c2f767
Merge pull request #8178 from ethereum/internal_revert_strings
Internal reverts with reason in debug mode
2020-02-10 17:35:41 +01:00
chriseth
db2eece7fc
Merge pull request #8273 from ethereum/fix-8271
yul proto fuzzer: Support boolean literal generation
2020-02-10 17:35:09 +01:00
Bhargava Shastry
59e7206c8f yul proto fuzzer: Support boolean literal generation 2020-02-10 20:48:29 +05:30
Leonardo Alt
36928c7a35 Add reason string for internal reverts 2020-02-10 11:57:20 -03:00
a3d4
e3d6a3e44e Updated expectations. 2020-02-09 17:29:13 +01:00
chriseth
92c9b078b4 Use correct instance of EVMDialectTyped. 2020-02-06 19:46:37 +01:00
chriseth
4ae97f4563 Make dialect option lowercase. 2020-02-06 19:46:37 +01:00
chriseth
f0ebb26f29
Merge pull request #8223 from imapp-pl/yul-phaser-program-reuse
[yul-phaser] Program reuse
2020-02-06 13:29:44 +01:00
Daniel Kirchner
e07274a96f Disallow libraries as mapping keys. 2020-02-06 09:09:43 +01:00
cameel
e4c7b73897 [yul-phaser] Store already loaded program in Population and make copies when computing fitness
- Until now the source code was being parsed during every fitness computation. Now the parsed program is reused and only the optimisation steps are applied each time.
2020-02-06 09:01:10 +01:00
cameel
57fb64d467 [yul-phaser] Make Program copyable by doing a deep copy of the AST in the copy constructor 2020-02-06 09:01:10 +01:00
cameel
33cf4e4769 [yul-phaser] Tests for Population class 2020-02-05 18:13:30 +01:00
cameel
ccaff1b08e [yul-phaser] Tests for random number generators 2020-02-05 18:13:30 +01:00
cameel
24d63a93cf [yul-phaser] Tests for Program class 2020-02-05 18:13:30 +01:00
cameel
bee62cdd9e [yul-phaser] Tests for Chromosome class 2020-02-05 18:13:30 +01:00
cameel
f8e397b487 [yul-phaser] Create test suite for Chromosome 2020-02-05 18:13:30 +01:00
chriseth
5de3379d82
Merge pull request #8238 from ethereum/yul-syntax-tests
Implement yul syntax tests
2020-02-05 15:15:41 +01:00
Mathias Baumann
fc10e701fc Implement yul syntax tests 2020-02-05 14:58:34 +01:00
Mathias Baumann
ef07fc3066 Fix formatting 2020-02-05 13:22:15 +01:00
chriseth
0b9c842656 Fix abstract without contract. 2020-02-05 12:14:14 +01:00
chriseth
527c011c2e Update tests. 2020-02-04 22:51:33 +01:00
chriseth
48933df18d Add some missing wasm functions. 2020-02-04 22:44:08 +01:00
chriseth
a7624ffc45 Implement i32 builtins for the interpreter. 2020-02-04 22:44:08 +01:00
chriseth
7cca036f4c
Merge pull request #8224 from a3d4/refactor-sourcelocation
Replaced SourceLocation::isEmpty() with isValid() and hasText().
2020-02-04 22:23:51 +01:00
alex
3416c029cf Relaxed assert in AsmJsonImporter::createAsmNode. 2020-02-04 20:37:51 +01:00
chriseth
cafad3770d Update tests. 2020-02-04 18:27:01 +01:00
chriseth
9f0cef97c2 Specify default type for word size transform externally. 2020-02-04 18:13:37 +01:00
Daniel Kirchner
d882b6fa83 Allow tests to be marked ABIEncoderV1Only. 2020-02-04 17:22:03 +01:00
Daniel Kirchner
af9fc8b634 Mapping getters for Yul IR. 2020-02-04 17:22:03 +01:00
Daniel Kirchner
d3cbfb0c5c Allow user-defined types as mapping keys in parser and restrict to contracts during type checking. 2020-02-04 17:22:03 +01:00
alex
211227f50b Modified SourceLocation::hasText() to allow empty source. 2020-02-04 04:19:28 +01:00
cameel
5fbc4d4afa [yulopti] Automate printing of the usage banner
- This now displays internal step names rather than human-readable ones but the internal ones are readable enough and it's not something worth creating another map.
- Options in the banner are now aligned in columns and thus easier to read.
2020-02-03 12:22:47 +01:00
cameel
4129c27495 [yulopti] Replace hard-coded step list with OptimiserSuite's maps 2020-02-03 12:22:47 +01:00
alex
e4b18e85e6 Replaced SourceLocation::isEmpty() with isValid() and hasText().
The function SourceLocation::isEmpty() had somewhat dual role.
Sometimes it indicates that the SourceLocation is invalid.
Sometimes it means that there is no corresponding source text.

Hence the proposal is to replace it with two functions, isValid() and hasText().

I also removed Scanner::sourceAt(). (Do we have a rule of thumb to remove unused code?)

Since hasText() checks that start and end are valid indices for source, I adjusted a couple of tests to avoid empty source strings.
2020-02-03 08:04:21 +01:00
chriseth
2098dbade9
Merge pull request #7834 from ethereum/docstring-ast-node
[natspec] Introduce AST node for structured documentation
2020-01-30 19:04:52 +01:00
Erik Kundt
4a179056ed Adds JSON import / export for structured documentation. 2020-01-30 18:26:01 +01:00
Erik Kundt
ec27c2e507 Introduce AST node for structured documentation. 2020-01-30 18:25:56 +01:00
chriseth
2afcfec77b
Merge pull request #8220 from ethereum/remove-var-name-cleaner-from-optimiser-suite-step-list
Remove var name cleaner from optimiser suite step list
2020-01-30 17:58:43 +01:00
cameel
ed5210490d [yulopti] Run disambiguator after VarNameCleaner
- This is a trivial change and it makes it safe to use in combination with other step.
2020-01-30 17:35:27 +01:00
chriseth
d41e1db74a Adjust and add commandline tests for yul. 2020-01-29 19:10:53 +01:00
chriseth
d3b53ee394 Make bool type optional for bool literals. 2020-01-29 19:01:28 +01:00
chriseth
a66782537a Use old yul dialect only in tests. 2020-01-29 19:01:28 +01:00
chriseth
d07dd55096 Update wasm tests. 2020-01-29 17:25:25 +01:00
chriseth
23667ce12d Update Yul optimizer tests. 2020-01-29 17:25:25 +01:00
chriseth
e7b95de315 Tests for default type parsing. 2020-01-29 17:25:25 +01:00
chriseth
fbe5bb0cce Parse default dialect and omit when printing. 2020-01-29 17:25:25 +01:00
chriseth
e41155cf48
Merge pull request #8062 from imapp-pl/polyfill-part-2
Arithmetic functions implementation for EVM->EWasm translator.
2020-01-29 17:22:27 +01:00
chriseth
457cdecf6f
Merge pull request #8135 from ethereum/fix-get-options-7112
TestFramework: Merge Options.h into Common.h
2020-01-29 16:05:55 +01:00
Mathias L. Baumann
5130a2b0ae
Merge pull request #8063 from ethereum/yulvisit-7656
Use yul::AstWalker for assembly reference resolving
2020-01-29 14:56:19 +01:00
Mathias Baumann
00e4d13975 TestFramework: Merge Options.h into Common.h 2020-01-29 12:27:05 +01:00
chriseth
a788ba14f3
Merge pull request #8173 from ethereum/fix-7859
yul proto fuzzer: Add EVM version field
2020-01-28 22:14:25 +01:00
chriseth
35820398c2
Merge pull request #8179 from pinkiebell/codegen
libsolidity/codegen: Use calldatacopy to cheaply zero memory..
2020-01-28 18:07:30 +01:00
Mathias Baumann
b8e2baf5f4 Use yul::AstWalker to resolve assembly symbols 2020-01-28 17:57:48 +01:00
Mathias Baumann
2f1f8e25c1 TestFramework: Remove headers from Options.h 2020-01-28 17:29:22 +01:00
rodiazet
f1004e712c [WASM] Add div, sdiv, mod, smod, exp, lt, sar, addmod, mulmod, signextend 2020-01-28 13:32:43 +01:00
Mathias Baumann
1027f6f78f Extract some semantic tests 2020-01-28 11:59:44 +01:00
Bhargava Shastry
8cbe1d4b1d yul proto fuzzer: Make function call generation optional 2020-01-24 12:31:43 +05:30
Bhargava Shastry
a335fed189 yul proto fuzzer: Add EVM version field 2020-01-24 12:31:20 +05:30
chriseth
790c6d2cae Tests for salted create. 2020-01-23 21:20:01 +01:00
chriseth
2fa586beac Test that uses function call options on overloaded function. 2020-01-23 21:20:01 +01:00
Mathias Baumann
a3f23d3158 Implement new with CREATE2 and function call options. 2020-01-23 21:20:01 +01:00
chriseth
679f729f2f Implement create2 for evmhost. 2020-01-23 21:20:01 +01:00
pinkiebell
bb6fb675e0 libsolidity/codegen: Use calldatacopy to cheaply zero memory instead of
codecopy.

Motiviation:
  Zero'ing memory is commonplace in contracts, but with the upcoming
  Layer-2 EVM translation layers and other on-chain verification
  mechanisms, using `codecopy` becomes a `costly` operation in those
  sandboxes. Using `calldatacopy` achieves the same thing, gas costs
  are also the same as codecopy, and is significantly cheaper in the `sandbox` situation.
2020-01-22 17:56:56 +01:00
Jason Cobb
595f569e97
Update tests for interface inheritance 2020-01-22 09:40:40 -05:00
Jason Cobb
573a054d5d
Prohibit interfaces inheriting from non-interfaces 2020-01-22 09:40:40 -05:00
chriseth
1b19524036
Merge pull request #8150 from ethereum/isoltest-alignment-output
[isoltest] Proper output of alignment in obtained test results
2020-01-20 12:38:12 +01:00
Bhargava Shastry
9befb4bdf0 yul proto fuzzer: Do not generate infinite for loops and limit total
number of for loops per test program to two
2020-01-20 16:27:01 +05:30
chriseth
470c19eb8c
Merge pull request #8165 from imapp-pl/yulopti-missing-step
yulopti: Add missing ConditionalUnsimplifier step
2020-01-20 11:45:29 +01:00
Alex Beregszaszi
004f01a388 Add test case for gas metering of exp(n, 0) 2020-01-17 14:24:55 +01:00
cameel
bf5e62931d fixup! [yulopti] Fix typo: (f)flatten -> (f)latten 2020-01-17 12:38:45 +01:00
cameel
49ca1f8534 [yulopti] Add missing ConditionalUnsimplifier to the list of available optimizations 2020-01-17 08:01:39 +01:00
cameel
4262eebdc4 [yulopti] Fix typo: (f)flatten -> (f)latten 2020-01-17 08:01:31 +01:00
Daniel Kirchner
ee5ff4df4e Clean up visibility via contract name and fix ICE on calling unimplemented base function. 2020-01-16 19:13:04 +01:00
Alex Beregszaszi
4d8758fcc3 Remove operator~ from FixedHash 2020-01-16 17:18:03 +00:00
Alex Beregszaszi
3c88d295b3 Remove FixedHash(unsigned) constructor 2020-01-16 16:18:08 +00:00
Erik Kundt
ae67cbde7d Fixes missing alignment output in isoltest. 2020-01-15 18:18:16 +01:00
chriseth
c017072bac
Merge pull request #8013 from ethereum/warnings
Enable more warnings in the build system
2020-01-15 18:00:14 +01:00
chriseth
5fb8e76931
Merge pull request #8136 from imapp-pl/polyfill-mstore8
mstore8 polyfill
2020-01-15 17:02:40 +01:00
Alex Beregszaszi
eafcb42be7 Enable more compiler warnings in the build system
"-pedantic -Wno-unknown-pragmas -Wimplicit-fallthrough"
2020-01-15 14:33:27 +00:00
chriseth
6ab8802601
Merge pull request #8132 from ethereum/drop-lll
Remove the LLL compiler
2020-01-15 15:15:22 +01:00
Alex Beregszaszi
9c19b93c37 Remove LLL specific features from libevmasm 2020-01-15 13:27:51 +00:00
chriseth
ed87b08911
Merge pull request #8066 from ethereum/removeAsmFlavour
Remove asm flavour
2020-01-15 14:21:54 +01:00
Alex Beregszaszi
1ee4b9dc3b Remove the LLL compiler 2020-01-15 13:18:18 +00:00
rodiazet
3760e90582 [WASM] mstore8 function implementation added. 2020-01-15 14:06:43 +01:00
chriseth
9d9a7ebe25
Merge pull request #7765 from ethereum/fix-7626
yul proto fuzzer: permit variable declarations inside for-init block
2020-01-15 11:21:23 +01:00
chriseth
0149220e0d
Merge pull request #8140 from nventuro/patch-1
Fix error message suggestion for receive
2020-01-14 23:36:09 +01:00
Nicolás Venturo
9649c92e12 Fix error message suggestion for receive 2020-01-14 23:24:27 +01:00
Mathias Baumann
21611f6b6f Add test for incorrect evm version when importing an ast tree 2020-01-14 18:42:43 +01:00
chriseth
b3fe84a6ea
Merge pull request #7153 from djudjuu/newImportAST
import ast from JSON
2020-01-14 17:56:53 +01:00
chriseth
0f014144c8 Test for true/false in inline assembly. 2020-01-14 17:16:09 +01:00
chriseth
123ea0a250 Remove asm flavour. 2020-01-14 17:16:09 +01:00
djudjuu
e8556fa1b2 Ast-Import from standard-json 2020-01-14 17:15:53 +01:00
chriseth
4d681fb16d Merge remote-tracking branch 'origin/develop' into HEAD 2020-01-14 16:43:48 +01:00
Mathias Baumann
adc4774d4a ASTJSON: Export evm version 2020-01-14 12:51:21 +01:00
Christian Parpart
abb9f1eed7 CMake: Renaming devcore static library to solutil (to match source code paths) 2020-01-13 15:52:46 +01:00
Bhargava Shastry
49a05b5935 Permit variable declarations inside for init block 2020-01-13 16:17:33 +05:30
Erik Kundt
7fec5f9548 Fixes unused variables that break osx build. 2020-01-11 23:11:04 +01:00
Erik Kundt
729b47e641 Updates semantic tests to 0.7.0. 2020-01-11 23:11:00 +01:00
chriseth
a4e34b378a
Merge pull request #8105 from ethereum/functionTypeRefactor
Add a new Function Type referring to FunctionDefinition's without calling context and use it to allow selector lookup.
2020-01-09 17:15:46 +01:00
Daniel Kirchner
9535c0f520 Introduce FunctionKind::Declaration and allow accessing function signatures via contract name. 2020-01-09 15:40:41 +01:00
Daniel Kirchner
b845595cbd Ignore empty options to (i)soltest 2020-01-09 14:49:11 +01:00
chriseth
5ca3abd7cb
Merge pull request #8106 from random-internet-cat/move-contract-kind
Move ContractKind from ContractDefinition to file-scope
2020-01-08 13:06:26 +01:00
chriseth
e81e73345e
Merge pull request #8112 from ethereum/fixIndent
[tiny PR] Fix indentation in test/tools/CMakeLists.txt
2020-01-08 11:44:06 +01:00
Daniel Kirchner
61652366ab Fix indentation 2020-01-08 10:42:19 +01:00
chriseth
b5bd4787af
Merge pull request #7801 from ethereum/tuneRemat
Tune rematerializer
2020-01-08 10:41:32 +01:00
rodiazet
b8c59c56e0 [WASM] Add keccak256, balance, extcodecopy, blockhash, coinbase, log's, call, callcode, delegatecall, staticcall 2020-01-08 10:08:36 +01:00
chriseth
40c0602b5c Do not rematerialize in loops. 2020-01-08 09:56:08 +01:00
chriseth
25d3f27c11 Tune Rematerializer 2020-01-08 09:56:08 +01:00
chriseth
d1a7ff0fbc
Merge pull request #8008 from ethereum/large-code
Issue warning if codesize exceeds EIP-170 limits
2020-01-08 09:48:59 +01:00
Daniel Kirchner
70a2902714
Merge pull request #8100 from ethereum/deadTestArguments
Disallow dead positional arguments for (i)soltest
2020-01-07 16:56:10 +01:00
Daniel Kirchner
be0775da49
Merge pull request #8075 from ethereum/refactor-namespaces
Refactor namespaces
2020-01-07 16:52:20 +01:00
Mathias L. Baumann
a2141d3be2
Merge pull request #7869 from fulldecent/fix-kill
Reduce usage of word kill
2020-01-07 16:01:04 +01:00
Christian Parpart
345f9928ab Library libdevcore renamed to libsolutil. 2020-01-07 15:51:50 +01:00
Christian Parpart
8ac6258d31 lll: Adapted to namespace changes. 2020-01-07 15:51:50 +01:00
Christian Parpart
ed45b000d1 Adapt tests directory to C++ namespace changes. 2020-01-07 15:51:50 +01:00
Christian Parpart
6b23412fae C++ namespace cleanup (except tests). 2020-01-07 15:51:50 +01:00
Jason Cobb
529405deb6
Move ContractKind from ContractDefinition to file-scope 2020-01-07 09:11:29 -05:00
William Entriken
6d068b6331 Reduce usage of the word "kill" 2020-01-07 11:18:10 +01:00
Bhargava Shastry
49aec64caf abiv2 proto converter: Do not resize dynamic storage arrays by writing to the length field as it is now read only 2020-01-06 17:44:42 +01:00
Daniel Kirchner
3e714913a0 Disallow positional arguments for (i)soltest instead of ignoring 2020-01-06 15:28:20 +01:00
Leonardo Alt
d972a10b4f Review 1 2020-01-02 12:43:56 +01:00
chriseth
3994c9135f Tests. 2019-12-29 15:53:47 +01:00
Alex Beregszaszi
4d791b2679 Issue warning if codesize exceeds EIP-170 limits 2019-12-25 19:51:35 +01:00
Alex Beregszaszi
9c27e98b83 Rename EWasmBuiltinInterpreter to EwasmBuiltinInterpreter 2019-12-19 11:36:08 +00:00
Alex Beregszaszi
65e59ecd06 Rename EWasm/ewasm/eWasm to Ewasm 2019-12-19 11:36:08 +00:00
Alex Beregszaszi
8511012e95
Merge pull request #8060 from ethereum/yul-interp-fix
Fix getExternalCodeSize in the Yul Ewasm interpreter
2019-12-18 23:14:48 +00:00
Alex Beregszaszi
4cebe66f8c
Merge pull request #8059 from ethereum/dialectForOpt
Dialect setting for yul optimizer tests.
2019-12-18 22:56:35 +00:00
Alex Beregszaszi
47a8e5fbd1 Fix getExternalCodeSize in the Yul Ewasm interpreter 2019-12-18 22:54:34 +00:00
chriseth
1e59c19166 Dialect setting for yul optimizer tests. 2019-12-18 21:54:30 +01:00
rodiazet
d867f5339b [WASM] add i64.clz and i64.store8 to Wasm dialect and EWasm interpreter.
dsads
2019-12-18 19:51:27 +01:00
Alex Beregszaszi
7effc94f24 Rename EVMToEWasmTranslator to EVMToEwasmTranslator 2019-12-18 16:57:45 +00:00
Alex Beregszaszi
7d3ccee921 Fix implementation of getCodeSize in Ewasm 2019-12-18 14:58:28 +00:00
Alex Beregszaszi
b3caf35e88 Change writeU256/writeU128/writeAddress not to return anything in Yul Ewasm interpreter 2019-12-18 14:58:28 +00:00
Alex Beregszaszi
9f1e8086bb Fix returning code size in Yul Ewasm interpreter 2019-12-18 14:58:28 +00:00
chriseth
b74f357c5e
Merge pull request #8051 from ethereum/yul-interp-log
Fix tracing LOG instruction in the Yul Ewasm interpreter
2019-12-18 15:08:06 +01:00
Alex Beregszaszi
7d60cc1729 Fix tracing LOG instruction in the Yul Ewasm interpreter 2019-12-18 13:35:05 +00:00
rodiazet
7d8c4c24ee Add arithmetic test cases for most of EVM->Ewasm translator 2019-12-18 13:58:03 +01:00
chriseth
4b026fa633 Update gas costs. 2019-12-18 01:41:32 +01:00
chriseth
b6fc703a27 Merge remote-tracking branch 'origin/release' into HEAD 2019-12-17 19:47:59 +01:00
chriseth
85a503725c
Merge pull request #8015 from ethereum/yul-trace-unreachable
Add trace for unreachable in Yul Ewasm translation tests
2019-12-17 17:42:44 +01:00
chriseth
244b011a30 More test cases. 2019-12-17 17:08:27 +01:00
chriseth
143471fe87 Tests. 2019-12-17 15:47:32 +01:00
chriseth
bdd338a8de
Merge pull request #7921 from ghallak/func-selector-ast-json
Add function selector to FunctionDefinition AST JSON
2019-12-16 14:07:35 +01:00
Gaith Hallak
0396bc7beb Modify the tests to include the function selector 2019-12-16 15:16:54 +03:00
Alex Beregszaszi
2a808e4f32 Add trace for unreachable in Yul Ewasm translation tests 2019-12-15 13:28:38 +00:00
Erik Kundt
0620936506 Adds test for empty contract w/ error recovery. 2019-12-13 15:39:10 +01:00
Alex Beregszaszi
5db5382fac Remove boost <1.59 workaround from tests 2019-12-13 00:36:34 +00:00
chriseth
670b719773 Updates to control structures (2).
Co-Authored-By: Bhargava Shastry <bhargava.shastry@ethereum.org>
2019-12-12 17:01:57 +01:00
chriseth
b53629d3d0
Merge pull request #7977 from imapp-pl/yul-ewasm-tests-imapp
Add comparison test cases for most of EVM->Ewasm translator
2019-12-12 14:07:13 +01:00
chriseth
255f63e352
Merge pull request #7963 from ethereum/yul-ewasm-tests
Add bitwise test cases for most of EVM->Ewasm translator
2019-12-12 14:03:17 +01:00
chriseth
276c777af3
Merge pull request #7976 from ethereum/solc-api
Test solidity_free in tests too
2019-12-12 12:48:28 +01:00
Alex Beregszaszi
6e6bc9904f libsolc: change return type of compile to non-const 2019-12-12 11:26:16 +00:00
chriseth
c175a468ab Do not call ABIEncoderV2 experimental. 2019-12-12 10:59:07 +01:00
rodiazet
336b436d3e Add comparison test cases for most of EVM->Ewasm translator
Add comparison test cases for most of EVM->Ewasm translator
2019-12-11 23:23:35 +01:00
Alex Beregszaszi
2ccf3ea4ab Test solidity_free in tests too 2019-12-11 18:43:13 +00:00
Leonardo
b9c35916e5
Merge pull request #7975 from ethereum/solcjs-tests
Use master branch of solc-js
2019-12-11 19:02:00 +01:00
Alex Beregszaszi
9ce01b19b2 Use master branch of solc-js 2019-12-11 16:48:11 +00:00
chriseth
f22bd769ff
Merge pull request #7939 from ethereum/more_tests_override_stuff
Ambiguous override for public state variables
2019-12-11 17:16:59 +01:00
Bhargava Shastry
f5bd483dfa yul proto fuzzer: Target default evm version 2019-12-11 16:52:00 +01:00
Alex Beregszaszi
5998f31543 Use BOOST_REQUIRE instead of BOOST_CHECK in LibSolc tests where appropriate 2019-12-11 15:17:50 +00:00
Alex Beregszaszi
b7d6e44af7 Fix callback memory allocation in tests 2019-12-11 15:17:39 +00:00
Christian Parpart
8682af2216 libsolc: Overhauls memory management. 2019-12-11 15:17:39 +00:00
Leonardo Alt
1fb62b91d2 Add more override tests with public state variables 2019-12-11 15:15:51 +01:00
Alex Beregszaszi
8cb085ca0d Add bitwise test cases for most of EVM->Ewasm translator 2019-12-11 12:44:05 +00:00
Alex Beregszaszi
fbf946e493 Add also smoke tests for opcodes not part of Ewasm 2019-12-10 17:00:45 +00:00
Alex Beregszaszi
d8cf8e98bd Add basic test cases for most of EVM->Ewasm translator 2019-12-10 17:00:45 +00:00
chriseth
07d271e770 Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-10 10:07:30 +01:00
Alex Beregszaszi
c9360421fc Move snark test from SolidityEndToEnd 2019-12-09 18:33:07 +00:00
chriseth
a5f7661075 Ambigous overrides for modifiers. 2019-12-09 18:43:59 +01:00
chriseth
152f42c6b2 Make ambigous override checker generic. 2019-12-09 18:41:39 +01:00
chriseth
6d2e59cc80 More tests. 2019-12-09 18:41:39 +01:00
chriseth
e1d6ce2b66 Override checks for modifiers. 2019-12-09 18:41:39 +01:00
Erik Kundt
1de27e0830 Adjusts solc-js DAO contracts to breaking natspec change. 2019-12-09 17:28:57 +01:00
chriseth
f6916a637e Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-09 17:16:58 +01:00
Leonardo
2579a12bb8
Merge pull request #7894 from ethereum/smt_isoltest_choice
[SMTChecker] Create SMTSolver option in isoltest
2019-12-09 16:41:20 +01:00
chriseth
06e8e216b3 Some more tests. 2019-12-09 16:04:45 +01:00
Daniel Kirchner
4c7f9f9751 Do not require overriding for functions in common base with unique implementation. 2019-12-09 16:04:45 +01:00
chriseth
9c3503834d Fix semver matcher differently. 2019-12-09 15:45:01 +01:00
Leonardo Alt
beed0f6a27 Set tests that CVC4 can't handle to Z3 only 2019-12-09 15:32:08 +01:00
Leonardo Alt
8d5f5a5cbe Remove deprecated code 2019-12-09 15:32:08 +01:00
Leonardo Alt
77b9416d3e Extract SMTChecker mod test 2019-12-09 15:32:08 +01:00
Leonardo Alt
02343208ad Extract SMTChecker compound assignment division tests 2019-12-09 15:32:08 +01:00
Leonardo Alt
ae6cdc3442 Extract more SMTChecker division tests 2019-12-09 15:32:08 +01:00
Leonardo Alt
b870e4ea31 Extract SMTChecker division tests 2019-12-09 15:32:08 +01:00
Leonardo Alt
225041738e Add SMTCheckerTest for isoltest 2019-12-09 15:32:08 +01:00
Leonardo Alt
3e8584bd21 Pull SyntaxTest::run content into separate functions 2019-12-09 15:32:08 +01:00
chriseth
071a52f0ff Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-09 14:43:53 +01:00
Alex Beregszaszi
b4a260d6e3 Test solc-js with v0.5.0
Reverts part of edd80a98
2019-12-09 13:17:38 +00:00
Mathias Baumann
e999409c89 Sync & update AST exporting according to AST changes 2019-12-09 10:42:24 +00:00
Christian Parpart
48dd1e398d test: Improve handling invalid EVMVersion syntax in test cases. 2019-12-09 10:14:27 +01:00
chriseth
e061f1e743 Merge remote-tracking branch 'origin/develop' into HEAD 2019-12-05 16:44:26 +01:00
chriseth
1fe1459b7d
Merge pull request #7583 from HenryRLee/issue5081
Version Checker: 0.5.x-prerelease will match `pragma solidity ^0.5` #5081
2019-12-05 14:59:58 +01:00
Mathias Baumann
b7d5de59c5 Implement overridding of functions by public variables 2019-12-05 12:48:52 +00:00
Gaith Hallak
4d90180e24 Support referencing other constants in inline assembly 2019-12-05 13:27:17 +03:00
chriseth
52467108ac
Merge pull request #7903 from ethereum/fixSuperFunction
Update missed tests for removal of superFunction.
2019-12-05 10:45:35 +01:00
chriseth
ac996d209f Fix gas cost test. 2019-12-05 10:17:09 +01:00
chriseth
c326641341 Update missed tests for removal of superFunction. 2019-12-05 09:37:52 +01:00
Daniel Kirchner
426f04b389 Implement and fix overriding unimplemented and implemented functions with unimplemented functions. 2019-12-05 09:26:43 +01:00
chriseth
2c72ee7017
Merge pull request #7902 from ethereum/fixTest
Fix test
2019-12-05 09:22:50 +01:00
chriseth
cf12e20e43 Fix test. 2019-12-05 09:12:05 +01:00
Daniel Kirchner
d3ba65968c Add new test. 2019-12-05 03:33:32 +01:00
Daniel Kirchner
7fab1c5e4a Update tests. 2019-12-05 03:33:32 +01:00
Henry Lee
628d219c94 Version Checker: 0.5.x-prerelease will match pragma solidity ^0.5
Basically, the pre-release rule is only applied when all remaining
version numbers equal to 0.
2019-12-05 09:07:20 +11:00
chriseth
d34b0b76b1
Merge pull request #7837 from ethereum/docstring-named-return
Report DocString error on named return paramater mismatch
2019-12-04 17:57:52 +01:00
chriseth
42d9a8e962 Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-04 17:01:44 +01:00
Erik Kundt
19d466d6fb Fixes named return natspec errors in compilation tests. 2019-12-04 15:38:12 +01:00
Erik Kundt
e5cb0fe839 Reports doctring error on named return mismatch. 2019-12-04 15:38:11 +01:00
chriseth
bd26da8d37
Merge pull request #7892 from ethereum/fixArrayLoopBug
Increase loop size to account for net storage gas metering.
2019-12-04 15:31:17 +01:00
Mathias Baumann
12f18b0220 Fix commandline tests after "develop" -> "develop_060" merge 2019-12-04 13:54:06 +01:00
chriseth
4365b665f4 Increase loop size to account for net storage gas metering. 2019-12-04 13:13:05 +01:00
chriseth
af482470f9 Update gas costs. 2019-12-04 11:41:42 +01:00
chriseth
dc79274871 Set default EVM version to Istanbul. 2019-12-04 10:42:14 +01:00
chriseth
d0f9201ed4
Merge pull request #7866 from ethereum/considerInfiniteLoopsNonMovable
[Yul] Mark recursive functions and functions containing loops to be non-movable.
2019-12-03 22:02:20 +01:00
Leonardo Alt
d6e8ca4c54 Fix SMTChecker tests in 060 2019-12-03 21:44:10 +01:00
chriseth
f2790cc5e0
Merge pull request #7886 from ethereum/develop
Merge develop into develop_060
2019-12-03 21:41:49 +01:00
chriseth
f713b7e158 Remove trailing whitespace in test. 2019-12-03 21:38:20 +01:00
chriseth
bbeb093abf Detect loops in call graph generator. 2019-12-03 21:38:20 +01:00
chriseth
37d776a1a6
Merge pull request #7831 from ethereum/mocked-host
Use evmc::MockedHost moar
2019-12-03 21:27:50 +01:00
chriseth
e3ee67da6c
Merge pull request #7792 from ethereum/enableYulOptimizer
Enable yul optimizer by default.
2019-12-03 21:24:22 +01:00
chriseth
287b9be7af
Merge pull request #7872 from ethereum/smt_z3_4_8_7
Update to Z3 4.8.7
2019-12-03 21:23:40 +01:00
chriseth
2d42da3b7d
Merge pull request #7817 from ethereum/bail-on-shadowing-state-vars
Report error on shadowing state variables
2019-12-03 21:22:39 +01:00
Christian Parpart
7bbdfe070f Make shadowing of inherited state variables an error. 2019-12-03 21:20:03 +01:00
chriseth
2f11ac3590 Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-03 21:17:15 +01:00
chriseth
19a6f09cc8 Merge commit '4d2f20570' into develop_060 2019-12-03 21:01:31 +01:00
chriseth
96d777d7f1 Merge commit 'a7d481fb9' into develop_060 2019-12-03 20:47:30 +01:00
Leonardo Alt
5337f58767 Update to Z3 4.8.7 2019-12-03 20:19:20 +01:00
Alex Beregszaszi
c644f43cde Update test expection in use_stack_optimization with YulException 2019-12-03 19:06:48 +01:00
Alex Beregszaszi
7156c908be Drop non-strict version of jsonParse* and always use jsonParseStrict 2019-12-03 16:20:23 +01:00
Daniel Kirchner
c1505d3f44 Fix solc-js tests. 2019-12-03 10:53:11 +01:00
Leonardo Alt
b1577f5e46 [SMTChecker] Fix ICE in array of structs type 2019-12-03 01:12:30 +01:00
Paweł Bylica
cdcfea73ab EVMHost: Remove unneeded methods 2019-12-02 23:22:27 +01:00
Paweł Bylica
0bd80ed958 EVMHost: Mark methods as final 2019-12-02 23:22:27 +01:00
Paweł Bylica
19f54857a6 EVMHost: Make m_currentAddress private 2019-12-02 23:22:27 +01:00
Paweł Bylica
eacc1753fd EVMHost: Remove unnecessary State struct 2019-12-02 23:22:27 +01:00
Paweł Bylica
7a0f311032 EVMHost: Use evmc::MockedAccount 2019-12-02 23:22:10 +01:00
Paweł Bylica
635e2fc9d3 EVMHost: Reuse tx_context from MockedHost 2019-12-02 23:04:02 +01:00
Paweł Bylica
2683c83ad2 EVMHost: Use recorded_logs from MockedHost 2019-12-02 23:04:02 +01:00
Alex Beregszaszi
1718250248 EVMHost: use evmc::MockedHost 2019-12-02 23:04:02 +01:00
Daniel Kirchner
05baa23e8a Require unimplemented functions to be virtual. 2019-12-02 21:59:00 +01:00
Alex Beregszaszi
c4012eee33 Update EVMHost to EVMC 7.1.0
Co-authored-by: Paweł Bylica <chfast@gmail.com>
2019-12-02 21:26:42 +01:00
Alex Beregszaszi
aba2ee0f68 Update EVMC to 7.1.0 2019-12-02 21:26:42 +01:00
Alex Beregszaszi
2a62425f0a EVMHost: mark precompiles as existing accounts in the constructor 2019-12-02 20:49:33 +01:00
Paweł Bylica
578d69983d EVMHost: Mark precompiles implementation as static methods 2019-12-02 20:41:50 +01:00
Alex Beregszaszi
fca0f6e2c1 Disable EndToEnd/snark test on <Byzantium (given the precompiles were introduced after) 2019-12-02 19:37:09 +01:00
Daniel Kirchner
77a9e91443 Enable yul optimizer by default. 2019-12-02 19:30:14 +01:00
Alex Beregszaszi
ddf6e067ed EVMHost: disallow Byzantium precompiles on earlier EVM versions 2019-12-02 19:11:18 +01:00
Erik Kundt
28ebe967a2 Force Gnosis PM fork of 0.6.0 2019-12-02 18:10:39 +01:00
Erik Kundt
1fbcf7bd8b Override Truffle version in Gnosis safe-contracts. 2019-12-02 18:10:39 +01:00
Erik Kundt
f13fa7ed82 Adjusts solc-js test to earlier override of soljson. 2019-12-02 18:10:39 +01:00
Erik Kundt
40b58adcdb Fixes solc path override in Truffle config. 2019-12-02 18:10:39 +01:00
Erik Kundt
3f00a0fc8c Fixes wrong URL of Zeppelin fork. 2019-12-02 18:10:39 +01:00
Erik Kundt
9f1348d7c7 Switches to Colony dappsys fork. 2019-12-02 18:10:39 +01:00
chriseth
c61ed0b22d
Merge pull request #7797 from ethereum/allowTranslationInAssemblyMode
Allow EVM to EWasm translation in assembly mode.
2019-12-02 13:15:06 +01:00
Leonardo
a7d481fb94
Merge pull request #7851 from ethereum/smt_fix_function_type
[SMTChecker] Fix ICE for arrays and mappings of functions.
2019-11-30 13:15:08 +01:00
Alex Beregszaszi
805d4d5a57 LLL: fix test cases after chaind/selfbalance was added 2019-11-30 11:56:22 +01:00
Leonardo
767ce4417f
Merge pull request #7850 from ethereum/smt_fix_typetype
[SMTChecker] Fix visit to IndexAccess that has type Type
2019-11-29 18:18:26 +01:00
Leonardo Alt
5adc2a40b9 [SMTChecker] Fix ICE for arrays and mappings of functions. 2019-11-29 18:06:44 +01:00
Leonardo Alt
9eda95caf9 [SMTChecker] Fix visit to IndexAccess that has type Type 2019-11-29 17:20:50 +01:00
Leonardo Alt
c09da092d2 [SMTChecker] Fix constructors with local vars 2019-11-29 16:59:15 +01:00
Leonardo Alt
84f806e75d Reenable push tests via Yul 2019-11-29 16:52:13 +01:00
Daniel Kirchner
edd80a986d Update emscripten to 1.39.3 2019-11-29 12:55:02 +01:00
Daniel Kirchner
909296582f Remove zeppelin truffle workaround 2019-11-28 21:31:12 +01:00
Daniel Kirchner
025a696bb0 Fix unrelated test failure. 2019-11-28 20:01:36 +01:00
Daniel Kirchner
7d1b0c6023 Fix Yul IR push 2019-11-28 18:11:38 +01:00
chriseth
bee2b9e120 Commandline test. 2019-11-28 16:22:24 +01:00
Leonardo Alt
a352abe00d [SMTChecker] Add support to constructors 2019-11-28 14:43:23 +01:00
chriseth
f7fc42d8c3
Merge pull request #7826 from ethereum/develop
Merge develop into develop_060
2019-11-28 13:37:19 +01:00
chriseth
301215f186
Merge pull request #7461 from sifmelcara/licm
[YulOpt] Implement loop-invariant code motion
2019-11-28 12:00:19 +01:00
mingchuan
db60d123d0 [YulOpt] Implement loop-invariant code motion 2019-11-28 11:59:29 +01:00
Leonardo Alt
240ff30878 [SMTChecker] Do not visit the name of a modifier invocation 2019-11-27 22:34:33 +01:00
chriseth
1ebcc757e1 Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-27 19:14:08 +01:00
chriseth
d207ae5dc7
Merge pull request #7798 from ethereum/evmc-literals
Use EVMC literals in EVMCHost
2019-11-27 19:12:07 +01:00
chriseth
80978293ab
Merge pull request #7818 from ethereum/evmc_vm
test: Use evmc::VM directly
2019-11-27 19:11:12 +01:00
Paweł Bylica
38a20190f4
test: Use evmc::VM directly
The evmc::VM works as a RAII wrapper similarly to unique_ptr, so there is no point in using additional unique_ptr.
2019-11-27 18:53:02 +01:00
Mathias Baumann
7bc6645218 Disallow use of virtual and private together 2019-11-27 18:52:41 +01:00
chriseth
0bb88dabb7 Restrict usage of plain "new". 2019-11-27 17:55:11 +01:00
chriseth
9e9b643b93 Tune the suite. 2019-11-27 11:56:11 +01:00
Alex Beregszaszi
e8b37c3bb5 Use EVMC literals in EVMCHost 2019-11-26 22:20:45 +01:00
Alex Beregszaszi
f14b7c7051 Update truffle* tests to use solc-js master_060 2019-11-26 19:11:28 +01:00
Alex Beregszaszi
1a4ee4ea34 Revert "Run solc-js tests against callback-context [REMOVE]"
This reverts commit 3133544313.
2019-11-26 19:11:11 +01:00
chriseth
7c063987c2
Merge pull request #7793 from ethereum/hex-tests
Add comprehensive tests to fromHex/toHex
2019-11-26 19:10:18 +01:00
Alex Beregszaszi
8fd95484fe Add comprehensive tests to fromHex/toHex 2019-11-26 17:34:50 +01:00
Bhargava Shastry
ea9e849ee4 Use pointer to string for efficiency 2019-11-26 17:12:56 +01:00
Bhargava Shastry
41bdc9b673 yul proto fuzzer: Generalize variable references 2019-11-26 17:12:56 +01:00
chriseth
400667fddf Update tests after merge from develop. 2019-11-26 16:27:07 +01:00
chriseth
b0db64ff5b Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-26 16:19:35 +01:00
chriseth
41177bc75c
Merge pull request #7770 from ethereum/yul_string_format
[Yul] Format string literals back to quoted string literals
2019-11-26 15:51:54 +01:00
chriseth
0973ae751a Do not warn about enabled ABIEncoderV2 anymore. 2019-11-26 15:49:42 +01:00
chriseth
d4d0df021d EWasm translation tests. 2019-11-26 15:46:33 +01:00
chriseth
6625f634fc Wasm Interpreter 2019-11-26 15:46:33 +01:00
Mathias L. Baumann
a45eed6dbf
Merge pull request #7584 from ethereum/callback-context
Introduce callback context in libsolc
2019-11-26 15:29:03 +01:00
Leonardo Alt
ce83bfb088 [Yul] Format string literals back to quoted string literals 2019-11-26 15:28:39 +01:00
Gaith Hallak
4a1e85436b Allow splitting string literals into multiple parts 2019-11-26 14:41:30 +03:00
chriseth
b6ad8f06e7
Merge pull request #7782 from ethereum/develop
Merge develop into develop_060
2019-11-25 17:58:09 +01:00
chriseth
78e4197cbc
Merge pull request #7764 from ethereum/ext-test-compile-split
[circleci] Splits out compilation only job for external tests
2019-11-25 17:30:15 +01:00
Alex Beregszaszi
3133544313 Run solc-js tests against callback-context [REMOVE] 2019-11-22 11:50:13 +00:00
Alex Beregszaszi
eedfafbbc4 Introduce callback context in libsolc 2019-11-22 11:42:39 +00:00
Leonardo Alt
ddc478e3e4 Add CallbackKind and use it for the SMT solver 2019-11-21 22:10:21 +00:00
chriseth
0201ff5a02
Merge pull request #7769 from ethereum/libsolc-doc
Document and clarify libsolc's interface
2019-11-21 22:57:32 +01:00
chriseth
a00f824479
Merge pull request #7773 from ethereum/develop
Merge develop into develop_060
2019-11-21 21:49:22 +01:00
Alex Beregszaszi
44c1f4a3bf Change the error message of empty callback/error in libsolc 2019-11-21 19:53:16 +00:00
chriseth
a26dd5a428 Remove trailing spaces in output. 2019-11-21 20:09:03 +01:00
chriseth
d5e9271592
Merge pull request #7350 from ethereum/array-length-rvalue
Make `length` member read-only
2019-11-21 19:22:42 +01:00
Alex Beregszaszi
65d4b82cbf Fix DAO test after recent solc-js updates
Updates on the "master_060" branch of solc-js removed the backwards compatibility.
2019-11-21 14:16:57 +00:00
Erik Kundt
26ab2d4c06 Splits out compilation only phase for external tests. 2019-11-21 00:00:27 +01:00
chriseth
8f2595957b
Merge pull request #7719 from ethereum/librarySignatuŕes
Add selector member to public and external library functions.
2019-11-20 18:43:14 +01:00
Leonardo Alt
72eff30778 Fix develop 060 merge 2019-11-20 13:49:40 +01:00
Leonardo Alt
389da5228e Merge remote-tracking branch 'origin/develop' into merge_develop_060 2019-11-20 12:27:40 +01:00
Erik Kundt
01705efb70 Adds and updates Yul tests for push() and pop(). 2019-11-20 12:04:47 +01:00
Daniel Kirchner
372df6b9e1 Implement array push and pop for yul and replace assignments in via yul tests. 2019-11-20 12:04:42 +01:00
chriseth
5deaac0849
Merge pull request #7740 from ethereum/istanbul
Enable support for Istanbul
2019-11-20 10:49:27 +01:00
Alex Beregszaszi
4d3aa6e99f Update to EVMC7
This file was missed in 92745c7bfc
2019-11-20 00:18:32 +01:00
Alex Beregszaszi
978fccd133 Remove obsolete file from test/evmc 2019-11-20 00:18:32 +01:00
Erik Kundt
c184fe8e5b Adjusts end-to-end tests to read-only array length. 2019-11-19 21:11:14 +01:00
Erik Kundt
7d6c0a50c2 Adjusts semantic tests to read-only array length. 2019-11-19 21:11:14 +01:00
Erik Kundt
d05afb34d6 Adjusts syntax tests to read-only array length. 2019-11-19 21:11:09 +01:00
chriseth
32f321e416
Merge pull request #7751 from ethereum/replace_boost_variant_std
Replace boost::variant by std::variant in libyul
2019-11-19 19:40:39 +01:00
chriseth
d696b3c92b
Merge pull request #7743 from ethereum/fixice-7558
Disallow conversion from ``super``
2019-11-19 18:52:33 +01:00
Alex Beregszaszi
2241c9181e Add README into the test/evmc directory 2019-11-19 17:42:26 +01:00
Leonardo Alt
be849b3c47 Replace boost::variant by std::variant in libyul 2019-11-19 17:23:18 +01:00
Mathias Baumann
23cad71c88 Disallow conversion from `super` 2019-11-19 17:14:11 +01:00
Alex Beregszaszi
17ed0f0898 Set costs to 0 for unreachable cases in GasCosts tests 2019-11-19 17:09:18 +01:00
Alex Beregszaszi
17f6a5a060 Update test expectations in GasCosts for ABIEncoderV2 2019-11-19 17:09:18 +01:00
Alex Beregszaszi
da50285ae3 Update test expectations in GasCostsTests 2019-11-19 17:09:18 +01:00
Alex Beregszaszi
cbb08ae3db Add semantic test for SELFBALANCE in inline assembly 2019-11-19 17:09:18 +01:00
Alex Beregszaszi
fc2af72a3d Add semantic test for CHAINID in inline assembly 2019-11-19 17:09:18 +01:00
chriseth
0033d63522 Run more tests on istanbul. 2019-11-19 17:09:18 +01:00
Alex Beregszaszi
840aba8929 Add new gas price for deployed bytecode (EIP2028) 2019-11-19 17:09:18 +01:00
Alex Beregszaszi
71a310a2ea Run fuzzer for istanbul 2019-11-19 17:09:18 +01:00
Mathias Baumann
eec1998a89 Update evmone version to v0.3.0 in docs and scripts 2019-11-19 16:49:43 +01:00
Erik Kundt
5020e186da Adjusts compilation tests to read-only array length. 2019-11-19 16:09:21 +01:00
Erik K
94272d44aa
Merge pull request #7745 from ethereum/develop
Merge develop into develop_060
2019-11-19 15:30:31 +01:00
chriseth
6797879128
Merge pull request #7647 from ethereum/virtual-5424
Implement virtual keyword
2019-11-19 13:21:27 +01:00
Alex Beregszaszi
9a124101ba Set chain_id in EVMHost 2019-11-19 12:28:18 +01:00
Alex Beregszaszi
6b198a261b Support Istanbul in EVMHost 2019-11-19 12:21:06 +01:00
Alex Beregszaszi
1432f0ad28 Adapt EVMHost for EVMC7 2019-11-19 12:21:03 +01:00
Erik Kundt
8faa6ffeaf Adjusts syntax and semantic tests to 0.6.0 2019-11-19 12:10:07 +01:00
chriseth
234513d0a4
Merge pull request #7735 from ethereum/cmdline-test-fix
Fix CLI test on 060
2019-11-19 11:59:35 +01:00
Erik Kundt
5f3fdc2476 Fixes failing commandline test. 2019-11-19 11:28:42 +01:00
Leonardo Alt
e500a262ea Fix SMTChecker tests for 060 2019-11-19 10:58:59 +01:00
Alex Beregszaszi
92745c7bfc Update EVMC to 7 2019-11-18 23:22:21 +01:00
Bhargava Shastry
62ae015552 docker: Add versioning and edit naming scheme 2019-11-18 15:16:53 +01:00
Bhargava Shastry
a8a50c4e0e Upgrade evmone to v0.2.0 and adapt fuzzer build 2019-11-18 15:16:53 +01:00
Leonardo Alt
d818746e0c [SMTChecker] Fix ICE in abi.decode 2019-11-18 13:15:10 +01:00
Bhargava Shastry
505b5deaf9 Add chainid and selfbalance opcodes to yul proto converter and enable it
in the yul proto differential fuzzer.
2019-11-18 09:26:00 +01:00
Daniel Kirchner
a0ae36ba70 Add selector member to public and external library functions. 2019-11-15 16:12:29 +01:00
chriseth
216e1749f4 Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-14 13:42:46 +01:00
chriseth
766309b6e4
Merge pull request #7713 from ethereum/no-lib-instance-7625
Disallow variables of library types
2019-11-14 13:39:56 +01:00
Mathias Baumann
0891b9451b Disallow variables of library types 2019-11-14 13:20:31 +01:00
chriseth
a667384517
Merge pull request #7712 from ethereum/fixIstanbulAsmParsing
Fix assembly parsing by passing evm version.
2019-11-14 13:20:15 +01:00
chriseth
b099374d8c Fix assembly parsing by passing evm version. 2019-11-14 13:06:36 +01:00
chriseth
8d46f39643
Merge pull request #7707 from ethereum/smt_ice_implicit_conversion
[SMTChecker] Fix ICE in string literal to fixed bytes conversion
2019-11-14 11:52:58 +01:00
Mathias Baumann
caa127e2a8 Make `abstract` keyword instead of reserved 2019-11-14 11:49:39 +01:00
Mathias Baumann
5b8ff78176 Implement virtual keyword 2019-11-14 11:49:39 +01:00
chriseth
f6191a7183
Merge pull request #7709 from ethereum/overloadMsgForMagic
Reconstruct function definition for magic variables in overload error message.
2019-11-14 11:24:54 +01:00
Leonardo Alt
5f43b8dbeb Output the storage layout of a contract via storageLayout artifact 2019-11-14 10:19:17 +01:00
chriseth
06588cde76 Reconstruct function definition for magic variables in overload error message. 2019-11-14 10:13:22 +01:00
Leonardo Alt
8efacfb545 [SMTChecker] Fix ICE in string literal to fixed bytes implicit conversion 2019-11-13 22:25:18 +01:00
Leonardo Alt
e3652627fd [SMTChecker] Fix ICE in CHC when function used as argument 2019-11-13 15:11:30 +01:00
Mathias Baumann
7d4e4b6088 Parse "virtual" keyword 2019-11-13 13:28:01 +01:00
chriseth
c0cf96cbc1
Merge pull request #7699 from ethereum/test-require-str
Test `require` with string literals
2019-11-13 12:20:23 +01:00
djudjuu
e437443645 Inline assembly to AST json export 2019-11-13 12:13:22 +01:00
Mathias Baumann
c74b1daef2 Test require with string literals
fixes #6651
2019-11-13 12:01:25 +01:00
Daniel Kirchner
ce7268272d Allow obtaining the address of a library by conversion to `address`. 2019-11-12 17:09:13 +01:00
chriseth
a7e133b95c
Merge pull request #7696 from ethereum/semanticsTestsLibraryDeployment
Add support for external libraries to extracted semantics tests.
2019-11-12 15:50:36 +01:00
Leonardo
684ccea6f0
Merge pull request #7697 from ethereum/develop
Merge develop into develop_060
2019-11-12 15:30:34 +01:00
Daniel Kirchner
c7e3318dba Add support for external libraries to extracted semantics tests. 2019-11-12 15:19:04 +01:00
Leonardo Alt
dc2dff839c [SMTChecker] Remove flaky tests until we fix the SMTChecker tests 2019-11-12 12:58:42 +01:00
Daniel Kirchner
8148619d5b Merge branch 'develop' into develop_060 2019-11-12 10:32:41 +01:00
Leonardo Alt
b323134ef0 [SMTChecker] Update test expectations for z3 4.8.6 2019-11-11 18:43:59 +01:00
chriseth
c68b672d9c
Merge pull request #7673 from ethereum/switch-external-forks
Switch to external forks of Gnosis and Zeppelin
2019-11-11 17:17:45 +01:00
chriseth
2e5a42836c
Merge pull request #7681 from ethereum/develop
Merge develop into develop_060
2019-11-11 16:42:03 +01:00
Christian Parpart
f15d47f165 Yul: Remove obsoleted FunctionalInstruction. 2019-11-11 16:04:39 +01:00
Erik Kundt
af790cec5e Switches to forks of external projects. 2019-11-11 13:14:56 +01:00
chriseth
a5f0422dcc
Merge pull request #7662 from ethereum/cmakeNoGlobInTests
Do not rely on cmake's GLOB for test/
2019-11-10 15:28:11 +01:00
Leonardo Alt
5dacaf57bc Fix ICE in FixedBytes IndexAccess 2019-11-08 17:29:40 +01:00
Daniel Kirchner
25a933a906 Do not rely on cmake's GLOB for test/ 2019-11-08 16:12:42 +01:00
chriseth
a081b720b9
Merge pull request #7587 from ethereum/abiv2-returndata-fuzz
Abiv2 returndata fuzz
2019-11-07 15:03:14 +01:00
chriseth
138ee647f1 Provide different options for reason strings. 2019-11-07 14:13:53 +01:00
Daniel Kirchner
108992c335
Merge pull request #7640 from ethereum/smt_fix_060
[SMTChecker] Fix override tests
2019-11-07 14:10:10 +01:00
chriseth
c0b27d0bc1
Merge pull request #7648 from ethereum/inlineAssemblyShadowing
Error on shadowing and invalid names in inline assembly
2019-11-07 13:31:09 +01:00
Daniel Kirchner
0556f64722 Analyze inline assembly variable declarations for invalid or shadowing names. 2019-11-07 13:04:37 +01:00
Leonardo Alt
fc945880d1 [SMTChecker] Fix override tests 2019-11-07 11:49:32 +01:00
Alex Beregszaszi
18542ebf31 Use evmc_load_and_configure to support passing EVMC options 2019-11-07 10:42:41 +00:00
Alex Beregszaszi
882cd3e285 Update EVMC to 6.3.1 2019-11-07 10:41:14 +00:00
Alex Beregszaszi
f77d7c2dc7 Ensure that EVMC capability is checked after loading evmone 2019-11-07 00:27:46 +00:00
Bhargava Shastry
9772cc44a0 abiv2 proto fuzzer: Fuzz return data coding 2019-11-06 23:42:10 +01:00
chriseth
21e65076b3
Merge pull request #7650 from ethereum/develop
Merge develop into develop_060
2019-11-06 21:56:55 +01:00
cd10012
a94d22e5fe Add documentation for extractReturnParameterDocs 2019-11-06 21:45:01 +01:00
cd10012
16fe59b7b4 Implement @erak review notes by creating function and adding constructor test
Update 060 doc with natspec change

Add two more tests with mixed usage

Fix solc-js

fix changelog
2019-11-06 21:44:59 +01:00
cd10012
f598b1515f Give unamed parameters unique keys and update tests to new spec
Fix whitespace
2019-11-06 21:44:34 +01:00
cd10012
18fe693fdd Add unamed return param test and check size in conditional 2019-11-06 21:44:09 +01:00
cd10012
b3ae601e88 Refactor to have multiple return params 2019-11-06 21:44:09 +01:00
chriseth
aa8de4404e
Merge pull request #7610 from ethereum/fix-7472
yul proto fuzzer: Increase step limit for optimized code
2019-11-06 21:11:51 +01:00
Leonardo Alt
10e70b8603 [SMTChecker] Support inheritance and resolve overrides 2019-11-06 11:00:06 +01:00
chriseth
081845d775 EWasm binary transform. 2019-11-05 19:58:55 +01:00
chriseth
4d99bf68f4
Merge pull request #7638 from ethereum/develop
Merge develop into develop_060
2019-11-05 17:33:54 +01:00
chriseth
5388c919f0 Some changes to "abstract". 2019-11-05 13:55:31 +01:00
chriseth
cac2e843e6
Merge pull request #7618 from ethereum/addMoreAbstractKeywordsInTests
Add some more abstract keywords in test to make sure the correct property is tested.
2019-11-05 13:38:21 +01:00
Leonardo Alt
c5e081dc8c [SMTChecker] Refactor CHC loops and add if blocks 2019-11-05 09:28:59 +01:00
chriseth
46ac16d25c Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-04 19:09:11 +01:00
Bhargava Shastry
6a55949c04 yul proto fuzzer: Increase step limit upper bound for optimized code 2019-11-04 18:38:56 +01:00
chriseth
60b97bfb43 Fix test that resulted from merge conflict. 2019-11-04 18:06:43 +01:00
Leonardo
1eac3d1d83
Merge pull request #7582 from ethereum/smt_multid_array_assignment
[SMTChecker] Support assignments to m-d arrays and mappings
2019-11-04 17:37:33 +01:00
chriseth
7c258873bd Add some more abstract keywords in test to make sure the correct property is tested. 2019-11-04 17:26:38 +01:00
Daniel Kirchner
3321fc56ea Split fallback function and introduce "fallback()" and "receive()" syntax. 2019-11-04 17:17:58 +01:00
chriseth
e7c4378ce7
Merge pull request #7516 from ethereum/abiv2-proto-struct
Abiv2 proto struct
2019-11-04 17:04:16 +01:00
chriseth
62aa20137c
Merge pull request #7600 from ethereum/TypeConversionOnTheFly
[WASM] Inject type conversions on the fly if needed.
2019-11-04 16:20:57 +01:00
Bhargava Shastry
04becb9458 Minor refactoring 2019-11-04 15:47:04 +01:00
Bhargava Shastry
12ed08eddb Place upper bound number on number of array dimensions 2019-11-04 15:47:04 +01:00
Bhargava Shastry
3cfeca33c1 Abiv2 proto fuzzer: Refactor and add support for structs 2019-11-04 15:47:04 +01:00
chriseth
5392532d70 Fix override error message. 2019-11-04 13:37:23 +01:00
chriseth
08cf616157
Merge pull request #7609 from ethereum/fix-7608
yul proto fuzzer: Catch exception early and propagate termination reason
2019-11-04 13:29:50 +01:00
Alexander Arlt
c908c16acd Remove InternalCompilerError on abstract contract instantiation. 2019-11-01 14:54:47 -05:00
Alexander Arlt
cd3ad73b5a Update tests. 2019-11-01 14:54:47 -05:00
Alexander Arlt
e87924a96e Update soltest related tests. 2019-11-01 14:54:47 -05:00
Alexander Arlt
54c5e604e5 Add new tests. 2019-11-01 14:54:47 -05:00
chriseth
8337de5189 [WASM] Inject type conversions on the fly if needed. 2019-11-01 15:44:39 +01:00
chriseth
8780f2d595
Merge pull request #7604 from ethereum/datasizeOffsetSingle
[WASM] datasize and dataoffset only return a single value.
2019-11-01 15:39:50 +01:00
chriseth
cca7f01199 Tests for conditional unsimplifier 2019-11-01 14:07:25 +01:00
chriseth
ce87f11885 Test updates 2019-11-01 14:01:56 +01:00
chriseth
61a2d44f38 Conditional unsimplifier 2019-11-01 14:01:56 +01:00
chriseth
21b9606ed3 Test updates. 2019-11-01 14:01:56 +01:00
chriseth
19ccdfb0b3 No into body. 2019-11-01 14:01:56 +01:00
chriseth
5d6e983be3 Conditional simplifier. 2019-11-01 14:01:56 +01:00
chriseth
7f1593baa0 [WASM] datasize and dataoffset only return a single value. 2019-11-01 13:52:49 +01:00
Bhargava Shastry
e4ba1c02e8 yul proto fuzzer: Catch exception early and propagate termination reason to harness 2019-11-01 12:26:35 +01:00
Bhargava Shastry
edc5059208 yul proto: Add leave statement 2019-11-01 11:18:05 +01:00
chriseth
21227d748c Update polyfill and set name. 2019-10-31 18:51:19 +01:00
chriseth
3d1123cf61
Merge pull request #7599 from ethereum/fixLocalGlobalWast
Fix local and globals wast functions.
2019-10-31 18:14:42 +01:00
chriseth
42b8c98567 Merge remote-tracking branch 'origin/develop' into develop_060 2019-10-31 18:03:25 +01:00
chriseth
04c62e2dc3 Fix local and globals wast functions. 2019-10-31 17:41:31 +01:00
chriseth
59c4d62b21
Merge pull request #7595 from ethereum/colony-develop-060
Switches to Colony fork temporarily
2019-10-31 17:39:30 +01:00
Leonardo Alt
80a790b5c3 Remove solc-js DAO tests replacement 2019-10-31 16:16:13 +01:00
Erik Kundt
38f6a58bac Switches to Colony fork temporarly. 2019-10-31 14:26:33 +01:00
Mathias Baumann
6c6a9054b2 Implement override checking 2019-10-30 17:31:33 +01:00
Mathias Baumann
20e227afb5 Ensure list of overrides consists of contracts 2019-10-30 17:31:33 +01:00
Mathias Baumann
b76106fc4a Parse override keyword for modifier definitions 2019-10-30 17:31:33 +01:00
Erik Kundt
ba8356f093 Updates fixed version pragma in ext. truffle tests. 2019-10-30 14:33:19 +01:00
chriseth
d605f89167
Merge pull request #7548 from ethereum/fixWasmLayout
Wasm: Fix layout for text conversion.
2019-10-29 17:52:34 +01:00
chriseth
499fe57d33 Tests 2019-10-29 14:32:16 +01:00
chriseth
91a92a01d5 Test updates. 2019-10-29 14:32:16 +01:00
chriseth
ceb8ee9124 [Yul] leave statement. 2019-10-29 14:32:16 +01:00
chriseth
5d906cd58d
Merge pull request #7568 from ethereum/fixtest
Fix failing tests on ArchLinux and potentially MacOS
2019-10-29 12:37:51 +01:00
Mathias Baumann
b3a5c9c9c0 Fix failing tests on ArchLinux and potentially MacOS 2019-10-29 12:02:50 +01:00
Leonardo Alt
8a42e3f87a [SMTChecker] Support assignments to m-d arrays and mappings 2019-10-28 17:27:39 +01:00
chriseth
edf1e83fda Merge remote-tracking branch 'origin/develop' into develop_060 2019-10-28 15:21:49 +01:00
chriseth
607bf24afe
Merge pull request #7386 from ethereum/060-strict-inline-assembly
Defaulting to strict inline assembly (instead of loose)
2019-10-28 12:48:58 +01:00
chriseth
81e2d1ed14
Merge pull request #7528 from ethereum/fix-7434
yul interpreter: Initialize calldata with random data
2019-10-28 12:39:27 +01:00
chriseth
9719f099aa
Merge pull request #7551 from ethereum/060-cxx17-std-optional
Use `std::optional<>` rather than `boost::optional<>`
2019-10-28 12:17:31 +01:00
chriseth
07c67b98f6 Merge remote-tracking branch 'origin/develop' into HEAD 2019-10-28 12:12:52 +01:00
Christian Parpart
df729b3084 Make use of C++17 std::optional<> instead of boost::optional<>. 2019-10-28 11:39:30 +01:00
Christian Parpart
30a99e0df4 test: Adapts InlineAssembly test case for jump instruction (which doesn't "exist" in strict assembly). 2019-10-28 10:03:16 +01:00
Henry Lee
24cbb4dd17 Treat magic variables as unknown identifiers in inline assembly
This fixes #4575. For keywords such as 'super' and 'this', will be
treated as unknown identifiers.
2019-10-28 14:59:50 +11:00
Erik Kundt
d470663c25 Update version pragma replacement in ext. tests. 2019-10-25 17:38:29 +02:00
Christian Parpart
f05718ef5d Syntax tests: Adapted to changes. 2019-10-25 15:01:27 +02:00
Christian Parpart
3c1d12b16c Assembly: Remove errorTypeForLoose property from AsmAnalyzer. 2019-10-25 15:01:26 +02:00
Christian Parpart
e40c498260 Adapting the tests to strict inline assembly. 2019-10-25 15:01:25 +02:00
chriseth
15e39f7d65
Merge pull request #7556 from ethereum/ice-7550
Check for use of modifiers in invalid contexts
2019-10-24 10:32:49 +02:00
chriseth
f399d8415f Fix layout for text conversion. 2019-10-23 16:43:29 +02:00
Mathias Baumann
c3e8023ad5 Fix wrong assert in overflow check 2019-10-23 14:59:34 +02:00
Mathias Baumann
8c5d1da5a5 Check for use of modifiers in invalid contexts 2019-10-23 12:36:20 +02:00
Mathias Baumann
ad7cf42aad Add missing dots in deprecation warning 2019-10-23 12:23:21 +02:00
Mathias Baumann
6ac12afd06 Disallow call of same-class-ctor as modifier 2019-10-23 10:29:41 +02:00
Mathias L. Baumann
7e01696030
Merge pull request #7554 from ethereum/develop
Merge develop into develop_060
2019-10-21 17:05:12 +02:00
Bhargava Shastry
128c3c7cf6 yul interpreter: Initialize calldata with random data 2019-10-21 10:37:35 +02:00
chriseth
e626437d77
Merge pull request #7538 from ghallak/7198-remove-padded-zeros
Remove trailing zeros from the output of BytesUtils::formatBytes
2019-10-16 15:55:02 +02:00
chriseth
ebfe7391ff Use selfbalance for `address(this).balance`. 2019-10-16 14:25:56 +02:00
Gaith Hallak
8a8f553e4d Remove trailing zeros from the output of BytesUtils::formatBytes 2019-10-16 14:42:12 +03:00
Gaith Hallak
02ae43aad4 Fix the documentation for TestFunctionCall::format 2019-10-16 14:42:12 +03:00
chriseth
9719d28526
Merge pull request #7475 from ethereum/move-solcjs-tests
Migrate solc-js tests
2019-10-16 12:35:09 +02:00
chriseth
cea6d6df8b Merge remote-tracking branch 'origin/develop' into develop_060 2019-10-05 13:08:44 +02:00
Gaith Hallak
51ae296cac Modify the expectation files in ASTJSON tests. 2019-10-02 22:31:12 +02:00
Gaith Hallak
6c7e849431 Modify the expectation files in ASTJSON tests
The following changes to expecation files are required for the ASTJSON
tests to pass:

* remove trailing spaces in ASTJSON tests
* replace indention tabs with 2 spaces in ASTJSON tests
* remove the space between the key and the colon in ASTJSON tests
2019-10-02 19:14:41 +03:00
Gaith Hallak
9d34d7de2f Remove trailing spaces from JSON output 2019-10-02 18:01:47 +03:00
chriseth
f884373142 Merge branch 'origin/develop' into develop_060 2019-10-02 16:29:36 +02:00
Daniel Kirchner
7202ebb5b2 Fix internal compiler error for arrays of recursive structs. 2019-10-01 16:51:14 +02:00
Christian Parpart
00d7dac15f Fixes source location in warning for shadowing import delcarations. 2019-09-30 11:45:46 +02:00
Leonardo Alt
b40895c100 Fix try catch test 2019-09-26 18:27:09 +02:00
Leonardo
ca714a2d3d
Merge pull request #7485 from ethereum/develop
Merge develop into develop_060
2019-09-26 15:43:12 +02:00
Erik Kundt
e4f0414391 Updates solc-js test to 0.6.0. 2019-09-25 16:03:14 +02:00
Erik Kundt
8adde5abbe Migrates solc-js test to ext. test infrastructure.
solc-js commit: 9d9de6338729cf5fbd62f479d54b7097e8a7e395
2019-09-25 16:03:08 +02:00
Christian Parpart
f85f6ba7e0 Fixes doxygen style multiline comment parsing for files with CRLF as line terminators. 2019-09-25 12:59:46 +02:00
chriseth
45583895fc
Merge pull request #7473 from ethereum/refactorSteps
Refactor Optimiser Steps Interface.
2019-09-24 15:55:25 +02:00
chriseth
cda23d63e9
Merge pull request #7458 from ethereum/fixErrorMessage
Fix error message about accessing storage pointers.
2019-09-24 15:11:03 +02:00
chriseth
9ce1ca2340 Refactor Optimiser Steps Interface. 2019-09-24 14:52:01 +02:00
Leonardo
9c23f35bec
Merge pull request #7462 from ethereum/version-060
Build version 0.6.0
2019-09-24 12:48:00 +02:00
Erik Kundt
e3a29ffcd3 Updates tests to version 0.6.0. 2019-09-24 12:01:14 +02:00
Erik Kundt
9a42a93955 Updates solc-js tests to 0.6.0. 2019-09-24 12:01:08 +02:00
chriseth
973e4ca90a
Merge pull request #7453 from ethereum/smt_lib_const_array
[SMTChecker] Add "as const: function to SMTLib2Interface
2019-09-24 11:02:34 +02:00
chriseth
ca21659749 Fix error message about accessing storage pointers. 2019-09-24 10:52:02 +02:00
chriseth
f3c4f466f6 Merge remote-tracking branch 'origin/develop' into develop_060
Had to adjust gas costs during merge.
2019-09-24 10:28:22 +02:00
chriseth
b5d6d5fcf9 Create. 2019-09-23 17:22:56 +02:00
chriseth
b5bc52f2a7 Control flow for try statements. 2019-09-23 17:22:56 +02:00
chriseth
644a402166 Tests. 2019-09-23 17:22:56 +02:00
chriseth
bfc8fd23ac Document chainid and selfbalance. 2019-09-19 15:35:37 +02:00
Leonardo Alt
ed9674be8d [SMTChecker] Add as const function to SMTLib2Interface 2019-09-18 22:57:14 +02:00
chriseth
5a950908b6
Merge pull request #7432 from ethereum/fix-ossfuzz-build
ossfuzz: Create a separate cmake toolchain file for ossfuzz
2019-09-17 15:24:50 +02:00
chriseth
7c774c3a4b
Merge pull request #7444 from ethereum/solc-fuzzer-add-evmversion
solc fuzzer: Use randomly chosen evm version
2019-09-17 15:23:17 +02:00
Leonardo Alt
43d6e00b14 Add push() for dynamic storage arrays 2019-09-17 13:47:33 +02:00
Bhargava Shastry
9b31d72f43 solc fuzzer: Use randomly chosen evm version 2019-09-17 13:43:22 +02:00
mingchuan
520a3ccfff [YulOpt] declare SSA var when control flow joins 2019-09-17 13:22:02 +02:00
chriseth
5859a69c44
Merge pull request #7409 from ethereum/forLoopOutOfBody
[Yul] Move for loop condition out of body.
2019-09-17 12:58:56 +02:00
chriseth
68986a58b6 Test. 2019-09-17 12:32:46 +02:00
chriseth
7a79742f3d Out of body again. 2019-09-17 12:30:15 +02:00
chriseth
5b3efee93b
Merge pull request #7442 from ethereum/develop
Merge develop into develop_060
2019-09-17 12:16:27 +02:00
chriseth
58f0f9dbea
Merge pull request #7417 from ethereum/fix-7355-v2
Update logic to track dynamically encoded parameters
2019-09-17 11:43:37 +02:00
Bhargava Shastry
48da5f07a5 ossfuzz: Create a separate cmake toolchain file for ossfuzz so that multiple fuzzing backends may be used 2019-09-16 18:35:15 +02:00
Leonardo Alt
eab9f65610 Fix ICE when pop dyn storage array of mapping 2019-09-16 16:33:17 +02:00
Bhargava Shastry
403fb7d88c Update logic to track dynamically encoded parameters 2019-09-16 14:25:37 +02:00
Leonardo Alt
d685554980 Create option for metadata hash 2019-09-13 18:59:12 +02:00
chriseth
2d601a4f23
Merge pull request #7414 from ethereum/refactorSSA
Refactor SSA transform.
2019-09-13 17:55:39 +02:00
Leonardo Alt
e1c238e25f [SMTChecker] Add loop support 2019-09-13 12:40:53 +02:00
Daniel Kirchner
c72d1ffb65
Merge pull request #7421 from ethereum/develop
Merge develop into develop_060
2019-09-13 12:14:02 +02:00
Daniel Kirchner
4782c800ec Initial introduction of array slices with partial implementation for dynamic calldata arrays. 2019-09-13 10:57:53 +02:00
Erik Kundt
e92b921123 [isoltest] Adds support for fallback and ether functions. 2019-09-13 10:55:46 +02:00
Erik Kundt
ad5fe2bf45 Fixes codespell. 2019-09-12 22:15:03 +02:00
chriseth
50ce3b0ac8
Merge pull request #7420 from ethereum/develop
Merge develop into develop_060
2019-09-12 22:06:55 +02:00
chriseth
192946c1ba
Merge pull request #7413 from ethereum/ossfuzz-link-correctly
Link ossfuzz targets with -fsanitize=fuzzer instead of libFuzzingEngine
2019-09-12 20:22:53 +02:00
chriseth
20bada4c60 Refactor SSA transform. 2019-09-12 20:07:39 +02:00
Daniel Kirchner
f86c5da202 Fix SSA reverser in special case of declaration followed by self-assignment. 2019-09-12 18:17:13 +02:00
Bhargava Shastry
a7c987d931 Link ossfuzz targets with -fsanitize=fuzzer instead of libFuzzingEngine supplied by docker image 2019-09-12 11:26:05 +02:00
chriseth
4f80117eef Use builtin iszero for for loop condition rewriting. 2019-09-12 10:26:16 +02:00
chriseth
fcfe829534 Introduce LiteralRematerializer and thus simplify StructuralSimplifier. 2019-09-11 19:50:24 +02:00
chriseth
a064e0fc97
Merge pull request #7236 from ethereum/proto-add-object-access
Experimental support for object access builtins
2019-09-11 18:28:10 +02:00
chriseth
e9346ca38a
Merge pull request #7400 from ethereum/evmoneSearch
Fix evmone filename for auto-discovery for windows and macos.
2019-09-11 17:55:12 +02:00
chriseth
b962f58973
Merge pull request #7405 from ethereum/isoltest-format-fix
[isoltest] Add fallback formatting
2019-09-11 17:52:11 +02:00
Christian Parpart
e528c65c04
Merge pull request #7404 from ethereum/develop
Merge develop into 0.6.0
2019-09-11 15:49:38 +02:00
Erik Kundt
4162c3d7af [isoltest] Adds fallback formatting. 2019-09-11 15:45:53 +02:00
Daniel Kirchner
2535091168 Replace preprocessor macros with constexpr expressions. 2019-09-11 13:03:05 +02:00
Christian Parpart
ccdca32f39 isoltest: Fixes matching tests on platforms that don't use forward slahes as path separators. 2019-09-11 12:53:20 +02:00
Flash Sheridan
733d40ddb5 Fix evmone filename for auto-discovery for windows and macos. 2019-09-11 12:28:05 +02:00
Bhargava Shastry
34022a2c8c Pseudo-randomly choose object/data identifier that is in scope 2019-09-11 10:57:54 +02:00
Bhargava Shastry
d677a15507 Add object access builtin functions 2019-09-11 10:57:54 +02:00
chriseth
143e867353
Merge pull request #7390 from ethereum/sloadTest
Load resolver involving staticcall.
2019-09-10 13:25:15 +02:00
chriseth
acf10ef60f
Merge pull request #7393 from ethereum/develop
Merge develop into 0.6.0
2019-09-10 12:27:02 +02:00
chriseth
20f6fbf88e Load resolver involving staticcall. 2019-09-10 12:09:13 +02:00
chriseth
ca0b38c8a3
Merge pull request #7327 from winsvega/newopcodes
add chainid and selfbalance to lllc
2019-09-10 12:00:26 +02:00
Leonardo Alt
5cfe0b7670 Allow explicit conversion from address to address payable 2019-09-09 23:46:00 +02:00
Erik Kundt
5e12e0cf27 [isoltest] Fixes auto-update for revert. 2019-09-09 22:46:43 +02:00
Dimitry
fd3ae0b24a add chainid and selfbalance to lllc 2019-09-09 23:35:36 +03:00
Bhargava Shastry
09fa31ccc5 yul: Add new optimizer rules for create and create2 builtins 2019-09-09 17:06:56 +02:00
chriseth
96b6b45658
Merge pull request #7324 from ethereum/activateLoadResolver
[Yul] Activate load resolver.
2019-09-09 16:45:41 +02:00
chriseth
a272506a34
Merge pull request #7374 from ethereum/hexStringUnderscores
Allow  underscores in hex strings.
2019-09-09 11:48:46 +02:00
Bhargava Shastry
e349fb1ce1 Abiv2 proto fuzzer: Crop at least 32 bytes if last dynamically encoded parameter is right padded 2019-09-09 10:07:30 +02:00
Daniel Kirchner
6f3341a204 Allow underscores in hex strings. 2019-09-06 17:58:35 +02:00
chriseth
9c72f25cce
Merge pull request #7368 from ethereum/errorReporter
Switch to new error reporter.
2019-09-06 15:53:29 +02:00
Daniel Kirchner
f4d990e5be Drop constant and payable fields from ABI. 2019-09-06 14:42:09 +02:00
Daniel Kirchner
94ce0462ba Add backup extension to all sed commands in the command line tests for OSX sed. 2019-09-06 14:19:49 +02:00
Daniel Kirchner
998f7de2c8 Change command line test from --ast to --ast-json. 2019-09-06 13:46:18 +02:00
Daniel Kirchner
f84371b2e0 Fix command line tests for new error reporter. 2019-09-06 13:31:57 +02:00
chriseth
ea0a952a69
Merge pull request #7362 from ethereum/develop
Merge develop into develop_060
2019-09-05 16:50:44 +02:00
Daniel Kirchner
9bcaeef39f Fix test wrt changed json ABI sorting. 2019-09-05 13:39:23 +02:00
chriseth
7f797bc6ae
Merge pull request #7342 from ethereum/extendedMemorySizeInterpreter
Make memory addresses wrap in interpreter.
2019-09-05 13:14:57 +02:00
Bhargava Shastry
137a898eca Yul proto fuzzer: Fix typo in low level call 2019-09-04 21:14:26 +02:00
chriseth
fd687f50ff
Merge pull request #7353 from ethereum/develop
Update 0.6.0 from develop
2019-09-04 20:21:37 +02:00
chriseth
5b4b4011c7 Extend memory beyond 32 byte addresses in interpreter. 2019-09-04 20:10:42 +02:00
chriseth
633932c5f1 Update tests. 2019-09-04 19:16:54 +02:00
Bhargava Shastry
c889e6e015 Yul proto fuzzer: Add create and call opcodes 2019-09-04 19:13:40 +02:00
Bhargava Shastry
6b27ef8fcb Yul proto fuzzer: Additional blockchain opcodes 2019-09-04 19:13:40 +02:00
krk
33f7f960cf Allow exponentials with signed base and unsigned power. 2019-09-04 17:32:47 +02:00
chriseth
7dd77784b7
Merge pull request #7335 from ethereum/abiSorting
Change ABI sorting order.
2019-09-04 17:18:27 +02:00
chriseth
8485a1abec Change ABI sorting order. 2019-09-04 13:06:09 +02:00
Bhargava Shastry
fce65ec811 Randomize calldataload and storage slots and use dictionary tokens as function argument 2019-09-04 09:54:57 +02:00
Bhargava Shastry
d066ba71a4 Force call of every valid func declaration 2019-09-04 09:54:57 +02:00
Bhargava Shastry
4837ef4ada Yul proto fuzzer: Make function definition a statement 2019-09-04 09:54:36 +02:00
Alex Beregszaszi
dce52509b4
Merge pull request #7329 from ethereum/istanbul
Introduce istanbul and berlin versions
2019-09-03 15:18:14 +01:00
chriseth
ea4ea5ae5d
Merge pull request #7333 from ethereum/yulopti_add_load_resolver
Add Load Resolver to Yulopti
2019-09-03 16:12:31 +02:00
chriseth
ebd16eb142
Merge pull request #7321 from ethereum/smt_const_array
[SMTChecker] Zero-initialize arrays
2019-09-03 15:51:59 +02:00
Leonardo Alt
d131784714 Add Load Resolver to Yulopti 2019-09-03 15:51:33 +02:00
chriseth
6e4e54cbc6
Merge pull request #7309 from ethereum/yulproto-refactor
Yul proto fuzzer: Do not shadow variables
2019-09-03 12:29:13 +02:00
chriseth
029941a168
Merge pull request #7251 from ethereum/sideEffectsForUserDefinedFunctions
Side effects for user defined functions
2019-09-03 12:10:56 +02:00
Bhargava Shastry
6427ec661a Yul interpreter: Out of bounds mloads return zero 2019-09-03 09:51:15 +02:00
Leonardo Alt
a774b2d905 [SMTChecker] Zero-initialize arrays 2019-09-02 22:37:30 +02:00
chriseth
55024d40fe Test updates. 2019-09-02 17:41:51 +02:00
chriseth
127bcfc69d Take user function side-effects into account for unused pruner. 2019-09-02 17:41:51 +02:00
chriseth
1c5845e3f2 Side-effects of user-defined functions. 2019-09-02 17:41:51 +02:00
chriseth
c499758cd8
Merge pull request #7326 from ethereum/develop
Merge develop into 0.6.0 branch.
2019-09-02 16:11:20 +02:00
Bhargava Shastry
bcf0c1810c Yul proto fuzzer: Do not reuse variable names 2019-09-02 15:23:10 +02:00
chriseth
9a6357ab09
Merge pull request #7188 from ethereum/abiv2-use-bytes-string-longer-than-32-bytes
Abiv2 use bytes string longer than 32 bytes
2019-09-02 15:05:43 +02:00
chriseth
bdf29277a2 Change interpreter memory to be non-contiguous. 2019-09-02 13:51:47 +02:00
Bhargava Shastry
46a133e848 Generate bytes and string literals that are longer than 32 bytes 2019-09-02 12:43:47 +02:00
Daniel Kirchner
467d420f7e ABI and AST tests. 2019-09-02 12:23:21 +02:00
chriseth
a988b64597
Merge pull request #7312 from ethereum/fixInterpreterScopes
Fix handling of scopes in Yul Interpreter.
2019-09-02 12:05:33 +02:00
Daniel Kirchner
2b938d703c Allow global enum definitions. 2019-09-02 11:52:51 +02:00
Bhargava Shastry
3963d0ca02 Create bytes/string values of shorter than 32 bytes and adjust invalid encoding length accordingly 2019-09-02 11:30:38 +02:00
Daniel Kirchner
fae0e10d26 Import tests. 2019-09-02 11:17:57 +02:00
Daniel Kirchner
872d21f527 Allow global struct definitions. 2019-09-02 11:17:42 +02:00
chriseth
01e0a12c3b Fix handling of scopes in Yul Interpreter. 2019-09-02 10:41:26 +02:00
chriseth
e86b5cf14e Replace byte(A, X) by zero if A >= 32 2019-08-29 15:35:34 +02:00
Leonardo Alt
214e5c6369 [SMTChecker] Fix index access type type error 2019-08-27 16:39:19 +02:00
Mathias Baumann
24716404f8 Parse override keyword 2019-08-26 17:34:21 +02:00
Alex Beregszaszi
5749a5d7c9 Introduce istanbul and berlin versions 2019-08-26 13:15:01 +01:00
Bhargava Shastry
922790730c Do not create duplicate case statements 2019-08-26 12:44:06 +02:00
Bhargava Shastry
86c981d9fa proto fuzzer: Use a yul optimizer dictionary 2019-08-26 12:44:06 +02:00
Erik K
d47863ef35
Merge pull request #7300 from ethereum/fix-docCheck
Fix deprecated option style for docCheck
2019-08-26 12:23:03 +02:00
Mathias L. Baumann
e1bb4b9f81
Merge pull request #7280 from ethereum/isoltest-empty-revert
[isoltest] Support empty revert message
2019-08-26 11:45:36 +02:00
Mathias Baumann
7f6bb543a9 Fix deprecated option style for docCheck
solhint was updated and now warns about deprecated option values
2019-08-26 11:23:29 +02:00
Erik Kundt
755dae5d66 [isoltest] Supports empty revert message. 2019-08-26 11:06:30 +02:00
Mathias L. Baumann
502bf01be2
Merge pull request #7278 from ethereum/develop
Merge develop into develop_060
2019-08-26 10:26:48 +02:00
Leonardo Alt
c27235b2f5 [SMTChecker] Adapt division test for Z3 only 2019-08-23 17:33:29 +02:00
Mathias Baumann
0e3ff25b4e Make sure json output array order is consistent
The source of the "contractDependencies" value was an std::map, thus
order was more or less random.
2019-08-19 17:42:03 +02:00
Daniel Kirchner
4354ef2ef4 Add update suggestion. 2019-08-19 14:58:05 +02:00
Daniel Kirchner
20b23e124b Add test case. 2019-08-19 14:56:04 +02:00
Daniel Kirchner
9f6fff2120 Replace casting of external functions to address by a member named "address". 2019-08-19 14:56:04 +02:00
Daniel Kirchner
aa2167b208 Extract some import tests. 2019-08-19 14:45:26 +02:00
Daniel Kirchner
6ed219ebe8 Support multiple sources for syntax tests. 2019-08-19 14:45:26 +02:00
Daniel Kirchner
4a65c5ebaa Compile succeeding syntax tests. 2019-08-16 17:14:49 +02:00
chriseth
3c4f558242 Tests 2019-08-15 16:30:05 +02:00
Leonardo Alt
1a70a46f9b [CHC] Add function blocks and check asserts 2019-08-15 12:25:15 +02:00
chriseth
2508cbc1eb
Merge pull request #7095 from ethereum/isoltest-failure-reason
[isoltest] Support FAILURE with reason
2019-08-15 11:37:56 +02:00
Erik Kundt
6c73bc5bac [isoltest] Refactors parameter formatting. 2019-08-14 21:28:43 +02:00
Erik Kundt
18157f5a49 [isoltest] Splits smoke test into separate files. 2019-08-14 21:28:43 +02:00
Erik Kundt
30483acc42 [isoltest] Support FAILURE with reason. 2019-08-14 21:28:43 +02:00
Daniel Kirchner
b0a5666b43 Better error messages when writing to expressions that cannot be written to. 2019-08-14 17:59:48 +02:00
chriseth
7d30fbdef0 Extract side effects into their own struct. 2019-08-14 15:06:10 +02:00
chriseth
e396dc7246 Properly set storage and memory after erasing potentially destroyed keys 2019-08-13 18:43:15 +02:00
Mathias Baumann
30373d5719 Test scripts: Make build dir a variable 2019-08-13 12:44:29 +02:00
chriseth
c82e46842a
Merge pull request #7226 from ethereum/release
Merge release back into develop.
2019-08-13 10:50:59 +02:00
chriseth
4596a761c4 Remove version in errors for release build. 2019-08-12 17:23:56 +02:00
Mathias Baumann
ccfcee5b80 YulInterpreter: Fix wrong context passed to called function 2019-08-12 17:12:53 +02:00
Leonardo
ffe906129f
Merge pull request #7210 from ethereum/smt_fix_type_mismatch
[SMTChecker] Support StringLiteral type
2019-08-12 14:32:43 +02:00
Leonardo Alt
955b97097c [SMTChecker] Relax expectations for complex nonlinear tests 2019-08-11 22:20:31 +02:00
Leonardo Alt
360f868836 [SMTChecker] Fix literal string type mismatch 2019-08-10 21:51:46 +02:00
Leonardo Alt
4214cd1354 [SMTChecker] Fix ICE when reporting cex concerning state vars from different source files 2019-08-10 20:56:52 +02:00
Leonardo Alt
7b22496b1f [SMTChecker] Fix ICE when inlining functions that use state vars and are in a different source 2019-08-09 17:50:52 +02:00
Daniel Kirchner
77729023a8 Enable asan workaround in optimizer test for gcc as well. 2019-08-09 16:11:54 +02:00
Bhargava Shastry
a20dc624d4 Selectively disable time sensitive check in the constant_optimization_early_exit unit test for address sanitizer builds. 2019-08-08 17:35:46 +02:00
chriseth
1258aabee7 Better error message if loading fails. 2019-08-08 17:35:46 +02:00
chriseth
f3f3cac864 Fix for ossfuzz. 2019-08-08 17:35:46 +02:00
chriseth
c4638cc5cb Remove mention of IPC. 2019-08-08 17:35:46 +02:00
chriseth
ac43c3bd18 Construct VM with path. 2019-08-08 17:35:46 +02:00
chriseth
09eeb1a6b9 Discover path. 2019-08-08 17:35:46 +02:00
chriseth
f692cec11d Provide path to libevmone. 2019-08-08 17:35:46 +02:00
chriseth
13e2a6fe52 Removing obsolete but timing-sensitive test. 2019-08-08 17:35:46 +02:00
chriseth
22e9155ba4 Precompiles. 2019-08-08 17:35:46 +02:00
chriseth
b7d17c578d Count gas for transaction and code deposit. 2019-08-08 17:35:46 +02:00
chriseth
3dec3af638 Use evmone for testing. 2019-08-08 17:35:44 +02:00
chriseth
7401fbabd9 Add evmc. 2019-08-08 17:34:51 +02:00
chriseth
9955c51769
Merge pull request #7077 from ethereum/sol-yul-delete-fixed-storage
[Sol->Yul] Implement delete for fixed-sized storage arrays
2019-08-08 16:47:16 +02:00
mingchuan
15631a7fbe Split calldataEncodedSize into calldataEncodedSize, calldataEncodedTailSize and calldataHeadSize and fix all usages. 2019-08-08 15:52:21 +02:00
Mathias Baumann
e072885031 [Sol->Yul] Implement delete for fixed-sized storage arrays 2019-08-07 18:28:52 +02:00
chriseth
d44f680a51
Merge pull request #7091 from ethereum/isoltest-value-format-fix
[isoltest] Fix (aligned) hex parsing and formatting
2019-08-07 17:55:37 +02:00
Erik Kundt
5ca991ac81 [isoltest] Allows odd-sized hex literals. 2019-08-07 17:19:27 +02:00
chriseth
6166dc8e8f
Merge pull request #6856 from rocky/recoveringParser1-ast
Produce AST even when there are parser errors
2019-08-07 15:56:45 +02:00
chriseth
c8f04b88bf
Merge pull request #7176 from ethereum/decodeMemoryLocation
Always copy dynamically-sized memory arrays during CompilerUtils::abiDecode
2019-08-07 15:42:14 +02:00
rocky
7fd7cc1e76 Produce AST even when there are parser errors 2019-08-07 15:25:53 +02:00
Erik Kundt
fe15db6537 [isoltest] Fixes exception handling while parsing literals. 2019-08-07 12:22:52 +02:00
Erik Kundt
e206ad6c24 [isoltest] Fixes hex (plus alignment) formatting. 2019-08-07 12:15:10 +02:00
Daniel Kirchner
efb34bdf22 Always copy dynamically-sized memory arrays during CompilerUtils::abiDecode. 2019-08-06 14:11:14 +02:00
Daniel Kirchner
4182033264
Merge pull request #7179 from ethereum/fix-gcc-9-errors
Fix gcc9 errors
2019-08-06 13:23:04 +02:00
Mathias Baumann
e4ad0e8e6d Fix gcc9 errors 2019-08-06 12:12:09 +02:00
Bhargava Shastry
efa2648771
Merge pull request #7177 from ethereum/abiv2-test-decoding-of-invalid-encode
Test low level calls with correct and incorrect encodings
2019-08-06 12:06:13 +02:00
Leonardo
cd563e526a
Merge pull request #7122 from sifmelcara/expression-inliner-avoid-dup-expr
[Yul] ExpressionInliner: avoid duplicating expressions
2019-08-06 11:08:38 +02:00
Bhargava Shastry
2f815c5c35 While compiling abiv2 proto generated solidity test program, silently ignore stack too deep errors (exception), throw exception otherwise. 2019-08-06 11:06:09 +02:00
Bhargava Shastry
bf16f2f75e Test low level calls with correct and incorrect encodings 2019-08-06 09:43:55 +02:00
chriseth
24074d8bac
Merge pull request #7172 from ethereum/smt_fix_return_tuple
[SMTChecker] CHC create function returned expressions
2019-08-05 16:48:13 +02:00
chriseth
42290f912b
Merge pull request #7052 from ethereum/isoltest-update-improvements
[isoltest] Update improvements (support for missing types)
2019-08-05 16:45:06 +02:00
chriseth
6fe2657b19
Merge pull request #6416 from ethereum/docs-style-checker
[DOCS] Docs examples style checker
2019-08-05 16:18:57 +02:00
Erik Kundt
f914415fb2 [isoltest] Updates type retrieval from ABI and its formatting. 2019-08-05 16:15:07 +02:00
Erik Kundt
38285b33d7 [isoltest] Prints bytes result if expectations mismatch. 2019-08-05 15:11:43 +02:00
Erik Kundt
07051f41d2 [isoltest] Reworks (default) ABI Type construction. 2019-08-05 15:00:04 +02:00
Erik Kundt
d9b98bf7af [isoltest] Cleans up BytesUtils. 2019-08-05 15:00:04 +02:00
Erik Kundt
a7a8ba73f9 [isoltest] Moves error types to dedicated file. 2019-08-05 15:00:04 +02:00
Chris Chinchilla
85ec44826a Add style checker
Rename files

Changes from review

Update test/docsCodeStyle.sh

Co-Authored-By: chriseth <chris@ethereum.org>
Update test/docsCodeStyle.sh

Co-Authored-By: chriseth <chris@ethereum.org>
Remove extraneous brackets
2019-08-05 13:00:30 +02:00
Leonardo Alt
369f8cd97f [SMTChecker] CHC create function return variables 2019-08-05 12:36:51 +02:00
Leonardo
11632966c9
Merge pull request #7171 from ethereum/smt_fix_compound_bitwise
[SMTChecker] Fix ICE compound bitwise op inside branch
2019-08-05 12:15:01 +02:00
chriseth
9b375edfe3
Merge pull request #6787 from ethereum/sol2yul-ctor-code
Improve constructor-code codegen (wrt. state variable initialization)
2019-08-05 11:50:34 +02:00
mingchuan
46387eaea2 [Yul] ExpressionInliner: avoid duplicating high cost expressions 2019-08-05 11:48:32 +02:00
Christian Parpart
235638b3fc Implements constructor code for state variables. 2019-08-05 11:23:01 +02:00
Leonardo Alt
d5fb8cf58a [SMTChecker] Fix ICE compound bitwise op inside branch 2019-08-02 20:02:39 +02:00
Leonardo Alt
7b5863e583 Do not erase knowledge about storage pointers when another pointer is assigned 2019-08-02 13:09:06 +02:00
Bhargava Shastry
e018d62a67 Dynamically sized array dimensions can be zero sized 2019-08-01 16:33:57 +02:00
chriseth
7421d85346
Merge pull request #7094 from ethereum/isoltest-arrow-optional
[isoltest] Introduce shorthand declaration: make `->` optional.
2019-08-01 15:42:42 +02:00
chriseth
742b4271fd
Merge pull request #7159 from ethereum/always_demand_tests
Make sure a semantic test file always contains function calls
2019-08-01 15:12:13 +02:00
chriseth
2a25d7461f
Merge pull request #7123 from rocky/tolerate-pragma-mismatch
A pragma version mismatch is not fatal if ...
2019-08-01 14:48:24 +02:00
chriseth
6730a59f74
Merge pull request #7157 from ethereum/fix-7155
FunctionType: Return correct stacksize for transfer/send
2019-08-01 14:40:35 +02:00
Mathias Baumann
c920b50ebe Make sure a semantic test file always contains function calls
Because if not, the code isn't even compiled.
2019-08-01 14:02:33 +02:00
Mathias Baumann
e887c06f6b FunctionType: Return correct stacksize for transfer/send 2019-08-01 13:56:09 +02:00
Leonardo Alt
44d7c6976a Erase pointer knowledge properly inside loops 2019-07-30 12:47:50 +02:00
Leonardo
00accd9daa
Merge pull request #7141 from ethereum/smt_fix_json
[SMTChecker] Reset SSA index to 0 instead of increasing in context reset
2019-07-29 10:20:06 +02:00
Leonardo Alt
847f574e22 [SMTChecker] Fix ICE when inlining function with tuple expression 2019-07-26 16:29:29 +02:00
Leonardo Alt
6bcbeb1d23 [SMTChecker] Reset SSA index to 0 instead of increasing in context reset 2019-07-25 14:16:34 +02:00
Christian Parpart
b6446aa615 Extracting more end-to-end tests. 2019-07-22 16:31:46 +02:00
Erik Kundt
41fb6f4ff8 isoltest: Removes additional whitespaces from output. 2019-07-22 13:43:20 +02:00
Erik Kundt
8c51a089d7 isoltest: Makes -> declaration optional. 2019-07-22 13:25:11 +02:00
Christian Parpart
58d8243921 isoltest: Fixes parsing and printing strings with *basic* escape sequences in it.
We explicitly did not implement a fully conformant ANSI escape sequence
parser but only what is needed for now.
2019-07-22 11:32:17 +02:00
Leonardo
508cf66da2
Merge pull request #7062 from ethereum/smt_chc_checker
[SMTChecker] Add skeleton for CHC
2019-07-19 15:41:43 +02:00
Leonardo Alt
03cc124f32 Add CHC skeleton 2019-07-19 11:52:05 +02:00
chriseth
8ba00cd7dd
Merge pull request #7126 from ethereum/addComprMSizeTest
Add another test related to stack compressor and msize.
2019-07-18 20:12:11 +02:00
chriseth
a30be56c27 Additional type info for ABI. 2019-07-18 16:54:11 +02:00
chriseth
0c0b5a09cd Add another test related to stack compressor and msize. 2019-07-18 16:40:46 +02:00
rocky
f9b631f410 A pragma version mismatch is not fatal if ...
error recovery is desired.

Fixes #7085
2019-07-17 19:01:01 -04:00
chriseth
15cba9163e
Merge pull request #7106 from ethereum/fixMSizeOpt
Do not overwrite allowMSizeOptimization
2019-07-17 18:17:40 +02:00
Bhargava Shastry
90d421352a Add bool type and array of bool and dynamic byte types 2019-07-17 14:24:43 +02:00
Bhargava Shastry
00bca77cca Updated evmc to version tracked by evmone v0.1.0 2019-07-17 14:24:27 +02:00
Christian Parpart
810a0de1aa Add evmc and host interface implementation. Modify fuzzer harness to make use of evmc host/vm. 2019-07-17 10:55:33 +02:00
chriseth
4fa7800458
Merge pull request #7109 from ethereum/ossfuzz-ci-update
Update fuzzing deps in docker image and ossfuzz CMakeLists.txt
2019-07-17 10:51:28 +02:00
chriseth
35ca6ef5ed
Merge pull request #7079 from ethereum/moreWorkOnEWasmExternals
Add eWasm externals.
2019-07-16 14:51:43 +02:00
chriseth
a0a0a34a21 Do not overwrite allowMSizeOptimization 2019-07-16 10:13:18 +02:00
chriseth
147f736f10
Merge pull request #7092 from ethereum/isoltest-parser-linenumbers
[isoltest] Add source location to parser errors
2019-07-16 10:09:15 +02:00
Bhargava Shastry
5aa571e56f Update fuzzing deps in docker image and ossfuzz CMakeLists.txt 2019-07-16 09:10:02 +02:00
Erik Kundt
2a1473fd30 Adds line numbers to parser errors in isoltest. 2019-07-15 14:16:07 +02:00
Erik Kundt
e269a0ff70 Adds constructor calls with ether value to isoltest. 2019-07-13 12:42:25 +02:00
chriseth
6c31a5f3dd Improve formatting. 2019-07-11 17:37:23 +02:00
chriseth
e3433aa4eb Add eWasm externals. 2019-07-11 17:37:23 +02:00
chriseth
869d69d293 Supply full object to stack compressor and Optimizer Suite. 2019-07-10 18:49:42 +02:00
chriseth
2a5280faa0 Check availability of data objects already in analysis phase. 2019-07-10 18:49:42 +02:00
chriseth
f3bdc79187
Merge pull request #7075 from ethereum/sol-yul-getter
[Sol->Yul] Implement keccak & getter functions
2019-07-10 14:11:27 +02:00
Mathias Baumann
d264e3e0ba [Sol->Yul] Implement getter functions 2019-07-10 13:42:39 +02:00
Mathias Baumann
37f04976a2 [Sol->Yul] Implement keccak256 2019-07-09 18:25:07 +02:00
Bhargava Shastry
3b33ff1454 Adjust call to suffixedVariableNameList post refactoring in ABIv2 proto fuzzer and slim down dependencies. 2019-07-09 18:18:40 +02:00
chriseth
15eb8fec50
Merge pull request #7015 from ethereum/sol-yul-arrays
[Sol->Yul] Implement uint256[] memory arrays
2019-07-09 17:34:46 +02:00
Mathias Baumann
0f24fcea17 [Sol->Yul] Implement uint256[] memory arrays 2019-07-09 15:36:02 +02:00
chriseth
859dbaa2a3
Merge pull request #7053 from djudjuu/moveSuffixHelper
move SuffixHelper to StringUtils
2019-07-09 14:32:05 +02:00
djudjuu
cafa01cbf6 moved SuffixHelper to StringUtils 2019-07-09 13:50:07 +02:00
chriseth
479b843067
Merge pull request #7048 from ethereum/soltest-refactoring
[isoltest] Types and formatting refactoring
2019-07-09 12:50:15 +02:00
chriseth
45cedc09fe
Merge pull request #6880 from ethereum/abiv2proto
Abiv2proto
2019-07-09 12:20:34 +02:00
chriseth
8d006d2017
Merge pull request #7068 from ethereum/asmConstNoValue
Cope with constants without value in inline assembly.
2019-07-09 12:13:56 +02:00
chriseth
9cb9021c36 Cope with constants without value in inline assembly. 2019-07-09 11:12:13 +02:00
Bhargava Shastry
5bc1a68b40 ABIv2 proto fuzzer implementation for a limited set of value and non-value types (arrays included). 2019-07-09 10:50:43 +02:00
chriseth
04bad01ab1
Merge pull request #7063 from ethereum/EndToEndTest-extractions-2
Extracting more end-to-end tests.
2019-07-08 16:15:22 +02:00
Christian Parpart
a9a56bc6dd
Extracting more end-to-end tests. 2019-07-08 16:04:52 +02:00
chriseth
2700cb0b43 Fix commandline tests. 2019-07-08 14:28:54 +02:00
chriseth
25928767b7
Merge pull request #7058 from ethereum/smt_reset_context
[SMTChecker] Clear encoding context before engine starts
2019-07-08 12:36:50 +02:00
chriseth
bd5d11d82d
Merge pull request #7056 from ethereum/yul-reindenter-with-SP
yul::reindent() to reindent with spaces instead of tabs (width: 4)
2019-07-08 12:36:26 +02:00
chriseth
7267873a96
Merge pull request #7038 from ethereum/addSecondaryLocationToStandardIO
Provide secondary source location for error messages in standard json.
2019-07-08 12:00:09 +02:00
Leonardo Alt
be663680d4 [SMTChecker] Clear encoding context before engine starts 2019-07-08 11:56:04 +02:00
Christian Parpart
7ba9537ae1
yul::reindent() to reindent with spaces instead of tabs (width: 4) 2019-07-08 11:43:11 +02:00
Erik Kundt
d06be2c53f Restructures alignment and bytes utils in isoltest. 2019-07-04 19:15:43 +02:00
chriseth
019ec63f63
Merge pull request #7036 from ethereum/unescapeNewlines
Unescape newlines in json test expectations.
2019-07-04 18:15:51 +02:00
Erik Kundt
de34f7712d Separates types and conversion functions in soltest. 2019-07-04 14:11:07 +02:00
chriseth
d3e542d32c Provide secondary source location for error messages in standard json. 2019-07-04 10:54:01 +02:00
chriseth
7e329769a0 Unescape newlines for test expectations. 2019-07-04 08:44:35 +02:00
Leonardo Alt
934e00d235 [SMTChecker] SymbolicVariables use EncodingContext to declare SMT vars 2019-07-03 16:05:56 +02:00
chriseth
b837705259
Merge pull request #7018 from ethereum/compile_only_requested
Compile only requested sources and contracts
2019-07-03 14:11:42 +02:00
Leonardo Alt
b8d4400588 Make it work on Mac OS 2019-07-03 11:26:28 +02:00
chriseth
2b91022b25 Fix view/pure checker for access to base. 2019-07-03 11:19:57 +02:00
Leonardo Alt
358368cd0c Tests for output selection 2019-07-03 09:58:55 +02:00
chriseth
a4ef435c07 Automated ABI Json tests. 2019-07-02 18:11:49 +02:00
chriseth
776fec1913 Make json output a bit prettier. 2019-07-02 18:07:05 +02:00
chriseth
60525dbf52
Merge pull request #7026 from ethereum/asmConstants
Support direct constants in inline assembly.
2019-07-02 14:21:24 +02:00
chriseth
e542e46163
Merge pull request #7022 from ethereum/smt_create_expr
[SMTChecker] Always create symbolic expression
2019-07-02 14:07:24 +02:00
chriseth
cdd137e3d1 Support constant numbers in inline assembly. 2019-07-02 14:01:05 +02:00
chriseth
ca10b59b25
Merge pull request #7020 from ethereum/smt_fix_callstack_message
[SMTChecker] Fix wrong assertion in callstack message
2019-07-02 13:47:49 +02:00
Leonardo Alt
fb3c85633b Always create symbolic expression 2019-07-01 16:25:33 +02:00
Leonardo Alt
75663dc91e [SMTChecker] Fix require with message 2019-07-01 16:17:06 +02:00
Leonardo Alt
6606a13ed2 [SMTChecker] Remove unsound assertion (too strong) 2019-07-01 16:16:39 +02:00
chriseth
22776cddcd
Merge pull request #7025 from ethereum/EndToEndTest-extractions-1
Extracting some Solidity end-to-end tests.
2019-07-01 15:54:09 +02:00
Christian Parpart
62f6e4bad3 Extracting some Solidity end-to-end tests. 2019-07-01 15:37:46 +02:00
Leonardo Alt
3cb4ed83c1 [SMTChecker] Split SMTChecker into SMTEncoder and BMC 2019-07-01 15:05:03 +02:00
chriseth
4976b3ec67 More work on eWasm polyfill. 2019-07-01 13:05:20 +02:00
chriseth
2ee272acf3
Merge pull request #7002 from ethereum/wasmSwitch
Wasm switch
2019-06-27 20:51:39 +02:00
chriseth
8c65a2383f
Merge pull request #7014 from ethereum/constantOptDirtyScratch
Add test for constant optimization with dirty scratch space.
2019-06-27 16:17:31 +02:00
chriseth
3be21800ac
Merge pull request #6683 from ethereum/updateSwarm
Update swarm hash.
2019-06-27 13:18:29 +02:00
chriseth
e2bfb1a663 Translation of switch statement for wasm backend. 2019-06-27 13:02:35 +02:00
chriseth
53f37f487f
Merge pull request #6994 from ethereum/smt_refactor_targets
[SMTChecker] Delay all checks
2019-06-27 12:56:34 +02:00
chriseth
89f0e1e6da Use updated swarm hash. 2019-06-27 12:49:06 +02:00
chriseth
aa11ad7d0a Update swarm hash. 2019-06-27 12:48:51 +02:00
chriseth
8d18003808
Merge pull request #6716 from ethereum/wasmTranslation
[Yul] EVM to Wasm translation
2019-06-27 12:31:35 +02:00
chriseth
55bf1b547e Add test for constant optimization with dirty scratch space. 2019-06-27 12:15:49 +02:00
Leonardo Alt
a28b84fdc3 [SMTChecker] Add a more general VerificationTarget 2019-06-27 10:31:50 +02:00
chriseth
f05805c955
Merge pull request #7003 from ethereum/missingTestKnowledge
Adding forgotten test for load resolver.
2019-06-26 13:08:55 +02:00
chriseth
b4a0a79398
Merge pull request #6993 from ethereum/smt_false_positives
[SMTChecker] Remove overflow check for assignments
2019-06-26 13:06:31 +02:00
chriseth
c6f7f5b2b0 Enable EWasm output. 2019-06-25 19:07:38 +02:00
chriseth
f5f1b2649c Adding forgotten test for load resolver. 2019-06-25 17:25:53 +02:00
chriseth
f58bd5551e Test for sign bit chopping. 2019-06-25 13:00:02 +02:00
Leonardo Alt
48d6729164 [SMTChecker] Remove overflow check for assignments 2019-06-24 17:58:56 +02:00
Mathias Baumann
5f072d30df Enable yul for more end to end tests 2019-06-24 16:06:22 +02:00
chriseth
a3e816e198
Merge pull request #6807 from ethereum/storageKnowledge
Knowledge about storage and memory.
2019-06-24 14:09:21 +02:00
chriseth
9c129a4087
Merge pull request #6984 from ethereum/yul-reindent
yul: adds reindent() function to reindent yul source code and makes us of it in IRGenerator
2019-06-24 12:54:40 +02:00
Christian Parpart
0fd1db533e yul: adds reindent() function to reindent yul source code and makes use of it in IRGenerator.
This function does count curly and round braces and reindents
accordingly the beginning of each line.

It does consider line-comments (// and ///) but not multiline comments (/* ... */).
2019-06-24 12:53:50 +02:00
chriseth
350631ae0d
Merge pull request #6940 from ethereum/sol-yul-storage-array-index
[Sol->Yul] Implement index access for storage arrays
2019-06-24 12:49:19 +02:00
chriseth
5329a84912
Merge pull request #6982 from rocky/error-recovery-spacing-typo
Add missing space in error recovery message.
2019-06-24 12:32:32 +02:00
rocky
8b461be2b0 Add missing space in error recovery message.
Also add a space in the Test Title
2019-06-24 06:28:18 -04:00
Christian Parpart
b58170f890
Refactor & Speedups on CircleCI; split out out codecov into dedicated tests. 2019-06-21 20:26:10 +02:00
chriseth
2b979cba38 Also optimize memory. 2019-06-20 18:43:37 +02:00
chriseth
8572600401 Implement knowledge base. 2019-06-20 18:43:37 +02:00
chriseth
1f9d11c644 Knowledge about storage. 2019-06-20 18:43:37 +02:00
Mathias Baumann
1dd63f416e [Sol->Yul] Implement index access for storage arrays 2019-06-20 16:14:51 +02:00
Daniel Kirchner
c71fb76bb2 Proofs for the overflow and underflow conditions in checked arithmetic for Sol->Yul code generation. 2019-06-20 15:58:10 +02:00
chriseth
9bb7160c4c
Merge pull request #6958 from sifmelcara/fix-abiencoderv2-codegen
Fix incorrect abi encoding of storage array of data type that occupy multiple storage slots
2019-06-20 13:08:42 +02:00
chriseth
848959fff0
Merge pull request #6929 from ethereum/solYulBinaryOps
[Sol -> Yul] Checked signed arithmetic and modulo.
2019-06-20 13:02:30 +02:00
Daniel Kirchner
fcd3410f26 Implement checked mod for sol->yul code generation. 2019-06-20 12:30:32 +02:00
Daniel Kirchner
a5b9f634ef Implement signed multiplication for sol->yul code generation. 2019-06-20 12:30:30 +02:00
Daniel Kirchner
5f6af8b374 Implement signed subtraction for sol->yul code generation. 2019-06-20 12:16:56 +02:00
Daniel Kirchner
88988af561 Implement signed addition for sol->yul code generation. 2019-06-20 11:42:50 +02:00
chriseth
dcb430c09f
Merge pull request #6968 from ethereum/completeWordSizeTransform
[Yul] More work on word size transform
2019-06-20 11:38:57 +02:00
chriseth
5b92640ab5
Merge pull request #6972 from ethereum/restrictWhiskersTemplateParams
Restrict whiskers parameters to regular characters.
2019-06-20 11:23:02 +02:00
chriseth
ecab46c707 Finish word size transform. 2019-06-20 10:42:56 +02:00
Leonardo Alt
51ba7f5f17 Add CI job for optimization proofs 2019-06-19 22:29:23 +02:00
chriseth
fc64de6d90
Merge pull request #6923 from ethereum/sol-yul-storage-array
[Sol->Yul] Implement .length for storage arrays
2019-06-19 19:13:06 +02:00
chriseth
d9d1c4a312
Merge pull request #6967 from ethereum/nameDisplacer
[Yul] Name displacer.
2019-06-19 18:56:54 +02:00
chriseth
fc6f47e453 Restrict whiskers parameters to regular characters. 2019-06-19 18:46:16 +02:00
Mathias Baumann
910cb8d329 [Sol->Yul] Implement .length for storage arrays 2019-06-19 18:09:23 +02:00
chriseth
8edf9e4baf
Merge pull request #6666 from vedant1811/issue-5405
Group function definitions
2019-06-19 18:03:40 +02:00
chriseth
d7b366ff46 Name displacer. 2019-06-19 14:55:38 +02:00
chriseth
53f26d9719
Merge pull request #6963 from ethereum/runOptimizerOnAllDialects
[Yul] Run optimizer on all dialects.
2019-06-19 10:51:24 +02:00
chriseth
cc5045a56e [Yul] Run optimizer on all dialects. 2019-06-19 10:01:16 +02:00
Vedant Agarwala
5d6cbd97df [Yul] Directly jump over a series of function definitions
Implement a AbstractAssembly::setStackHeight function
Update the tests
Update Changelog
2019-06-19 12:40:11 +08:00
mingchuan
13c1409669
Add test case that abi.encode nested storage arrays 2019-06-19 10:46:47 +08:00
chriseth
56db792ad9
Merge pull request #6876 from rocky/recoveringParser1-StandardCompiler
Add parser errorRecovery (including StandardCompiler)
2019-06-18 22:40:35 +02:00
rocky
1a7e09ab7a Add errorRecovery boolean to StandardCompiler 2019-06-18 15:54:05 -04:00
chriseth
05a67c486e Use "what" in exception reports. 2019-06-18 17:34:10 +02:00
chriseth
6cb6fe35ef Make Yul optimizer not fail for wasm. 2019-06-17 18:42:47 +02:00
rocky
ca3afea1d7 Add Steve Johnson-style parser recovery rules:
SourceUnit = Error $
    Block = '{' Error '}'
    ContractDefinition = '{' Error '}'
    Statement = Error ';'

Co-Authored-By: chriseth <chris@ethereum.org>
2019-06-17 14:47:07 +02:00
chriseth
633510eb04
Merge pull request #6935 from ethereum/subMaxValueXNotXRule
Add optimization rule SUB(~0, X) -> NOT(X).
2019-06-17 14:42:49 +02:00
chriseth
452a1d6aff
Merge pull request #6730 from ethereum/generic-for-loop
For loop with generalized init-cond-post
2019-06-17 10:50:50 +02:00
Daniel Kirchner
5718072e10 Fix comparison opcodes and minor errors in proof scripts. 2019-06-14 17:04:50 +02:00
Daniel Kirchner
d3293cf0d0 Correctness proof for SUB(NOT(0),X)->NOT(X). 2019-06-14 14:08:21 +02:00
Daniel Kirchner
4aa0c9e079
Merge pull request #6939 from ethereum/opt_proofs
Move optimization proofs repo to Solidity repo
2019-06-14 14:06:59 +02:00
Bhargava Shastry
b5cbb1a3e9 For loop with custom init and post blocks and potentially unbounded conditional expression 2019-06-14 08:46:28 +02:00
Daniel Kirchner
4d38df6920 Set state mutability of function type members `gas and value` to pure. 2019-06-13 18:27:53 +02:00
Leonardo Alt
5089d4ac28 Move optimization proofs repo to Solidity repo 2019-06-13 17:11:48 +02:00
Alex Beregszaszi
668972bb4e
Merge pull request #6930 from ethereum/msvc-SolidityEnd2EndTest-BigObj
Fixes compilation on Visual Studio 2019
2019-06-13 01:17:15 +02:00
Christian Parpart
98d852c832
Fixes compilation on Visual Studio 2019 (SolidityEndToEndTest.cpp's object file is too large, so we need a special flag to get it still compiling) 2019-06-12 23:46:32 +02:00
Leonardo
d2019f49ea
Merge pull request #6906 from ethereum/delegatecall_value_msg
Improve error message for delegatecall.value
2019-06-12 21:14:54 +02:00
Daniel Kirchner
dfbdb6c007 Fix failing command line tests. 2019-06-12 19:04:02 +02:00
Daniel Kirchner
2dc405e948 Fix command line tests script to properly report errors. 2019-06-12 19:03:45 +02:00
Daniel Kirchner
2849169bff
Merge pull request #6909 from ethereum/yul-delete-operation
[Sol->Yul] Make IRStorageItem work with dynamic offsets
2019-06-12 16:46:00 +02:00
Daniel Kirchner
502d22a26e
Merge pull request #6914 from ethereum/boost170
Use imported targets for boost and update emscripten boost to 1.70.
2019-06-12 15:26:24 +02:00
Mathias Baumann
9e23d6d05e [Sol->Yul] Compile some tests with yul 2019-06-11 17:44:36 +02:00
Daniel Kirchner
91200fdd2e
Merge pull request #6925 from ethereum/keccakTests
Some keccak tests.
2019-06-11 15:55:09 +02:00
Daniel Kirchner
073777e836 Some keccak tests. 2019-06-11 15:09:52 +02:00
Daniel Kirchner
ba8ad1a1d9 Use the TestCase settings mechanism for object compiler tests. 2019-06-11 14:11:27 +02:00
Daniel Kirchner
547173533c Unify parsing of simple test expectations and require lines to start with `//`. 2019-06-11 14:05:45 +02:00
Daniel Kirchner
bd1f65d609
Merge pull request #6888 from anurag-git/anurag_semantic_test_update
New semantic tests extracted
2019-06-11 10:50:10 +02:00
Anurag Dashputre
60332c6469 Extract semantic tests for
1. Transaction Status
2. Empty Contract
3. Smoke test for Range
2019-06-09 14:46:02 +02:00
Daniel Kirchner
8e20a5e59a Allow extracted semantics tests to run both with and without Yul. 2019-06-06 20:19:16 +02:00
Daniel Kirchner
226f8bb64d Use imported cmake targets for boost. 2019-06-06 18:49:34 +02:00
Daniel Kirchner
6368cd4c82 AsmParser: disallow trailing commas in function call arguments. 2019-06-06 13:16:27 +02:00
Leonardo Alt
b7634faa3d Improve error message for delegatecall.value 2019-06-06 12:55:12 +02:00
Leonardo Alt
d9ce9cab99 [SMTChecker] Use smtlib's implies instead of \!a or b 2019-06-04 14:23:44 +02:00
Bhargava Shastry
f57439035a Do not enclose string literal within double quotes before conversion to u256 2019-05-29 15:52:31 +02:00
chriseth
c9e2d388b5
Merge pull request #6848 from ethereum/invertibleRelation
Implement references using InvertibleRelation as data structure.
2019-05-29 13:34:10 +02:00
chriseth
4ee703e6e5 Revert "Add Steve Johnson-style parser recovery rules:"
This reverts commit 97f8ee0d1b.
2019-05-28 18:09:24 +02:00
chriseth
f9dca1f282
Merge pull request #6681 from rocky/recoveringParser1
Add Steve Johnson-style parser recovery rules:
2019-05-28 15:36:45 +02:00
rocky
97f8ee0d1b Add Steve Johnson-style parser recovery rules:
SourceUnit = Error $
    Block = '{' Error '}'
    ContractDefinition = '{' Error '}'
    Statement = Error ';'

Co-Authored-By: chriseth <chris@ethereum.org>
2019-05-28 15:06:34 +02:00
chriseth
a3f721bbcc
Merge pull request #6583 from ethereum/reset_yulstringrepo
Reset YulStringRepository regularly
2019-05-28 14:20:53 +02:00
chriseth
2276b567b1
Merge pull request #6840 from ethereum/discoverMSize
Only remove msize-modifying instructions if msize is not used.
2019-05-28 13:16:55 +02:00
Bhargava Shastry
dbae0fa939 Reset Yul string repository before each compilation. 2019-05-28 13:12:39 +02:00
chriseth
df96648b1c Do not allow msize in inline assembly if the Yul optimizer is active. 2019-05-28 12:54:33 +02:00
chriseth
d7b5ea6761 Allow msize optimization only if it is not present. 2019-05-28 12:54:32 +02:00
chriseth
c3cdae908d
Merge pull request #6767 from ethereum/constantOptimiserForYul
[Yul] Constant optimiser
2019-05-28 11:53:04 +02:00
chriseth
b95eebee1c
Merge pull request #6822 from ethereum/uninitializedLoadFromStorage
Explicitly turn uninitialized internal function pointers into invalid function when loaded from storage.
2019-05-28 11:48:56 +02:00
chriseth
01b6b680f1
Merge pull request #6829 from ethereum/solYulDivision
[SolYul] Division.
2019-05-28 11:48:20 +02:00
chriseth
cee1340113 Add mini-interpreter to check representation. 2019-05-28 11:35:07 +02:00
chriseth
1c16124a09 Constant optimiser for Yul. 2019-05-28 11:35:07 +02:00
chriseth
4061ad0a7b Implement references using InvertibleRelation as data structure. 2019-05-27 22:55:59 +02:00
chriseth
7183940e24
Merge pull request #6770 from ethereum/isoltest-parser-fix
[isoltest] TestFileParser: Fixes access of iterator at and beyond iterator ends
2019-05-27 19:14:35 +02:00
chriseth
fbf189151d [SolYul] Division. 2019-05-27 17:53:46 +02:00
chriseth
5b1a984882 Explicitly turn uninitialized internal function pointers into invalid function when loaded from storage. 2019-05-27 17:26:37 +02:00
chriseth
a600126703
Merge pull request #6833 from sifmelcara/fix-struct-array-mapping
Fix assignment of struct containing array of mappings
2019-05-27 11:14:28 +02:00
mingchuan
bf8af89bba
Fix assignment of struct containing array of mappings 2019-05-25 01:33:49 +08:00
chriseth
73d0eb6b7a Modify test to prevent underflow. 2019-05-23 21:32:30 +02:00
chriseth
ee7548a339 Activate some tests. 2019-05-23 21:32:30 +02:00
chriseth
195a7ff61a
Merge pull request #6814 from ethereum/yul-delete-operation
[Sol -> Yul] Implement delete for function pointers
2019-05-23 16:27:14 +02:00
Mathias Baumann
981983089c [Sol -> Yul] Implement delete for function pointers 2019-05-23 15:51:59 +02:00
chriseth
6132f0aea9
Merge pull request #6800 from ethereum/skipEmptyDump
Skip empty entries in memory and storage dump.
2019-05-23 14:27:44 +02:00
chriseth
3c548a1d76 Update tests. 2019-05-23 13:17:27 +02:00
Mathias Baumann
81702717b0 [Sol -> Yul] Enable function pointer comparison 2019-05-23 12:52:50 +02:00
chriseth
e5902c58a4
Merge pull request #6777 from sifmelcara/loop-cond-rewriter
[YulOpt] Implement ForLoopConditionIntoBody
2019-05-23 12:51:51 +02:00
chriseth
14545852d1 Make YulInterpreterTest EVM version aware. 2019-05-23 12:42:11 +02:00
chriseth
1ca3edf6a1 Remove side-effect-free instructions from the trace. 2019-05-23 12:42:11 +02:00
chriseth
3ef03258ec Remove memory logging. 2019-05-23 12:42:11 +02:00
chriseth
0291abf10f
Merge pull request #6818 from ethereum/alwaysUseBuiltins
Provide builtin functions even in loose assembly mode.
2019-05-23 12:29:12 +02:00
chriseth
91312e657b Skip empty entries in memory and storage dump. 2019-05-23 12:27:56 +02:00
chriseth
d707a26a90
Merge pull request #6809 from ethereum/refactor-ossfuzz-build
[ossfuzz] Refactor build system so that ossfuzz harnesses can be built locally
2019-05-23 12:26:44 +02:00
chriseth
7cf51876e2
Merge pull request #6812 from ethereum/asmCallvalue
Do not require payable for callvalue instruction.
2019-05-23 12:07:06 +02:00
chriseth
90e8594858 Update tests. 2019-05-23 11:30:12 +02:00
chriseth
9a00729ce7 Provide dialect to Parser and InlineAssembly AST nodes. 2019-05-23 00:24:58 +02:00
chriseth
1e3878121a Do not inline recursive functions. 2019-05-22 18:15:21 +02:00
mingchuan
4ab377eb00
Add tests for ForLoopConditionIntoBody 2019-05-22 21:51:03 +08:00
chriseth
7506b5752a Do not require payable for callvalue instruction. 2019-05-22 11:30:29 +02:00
Bhargava Shastry
804368bb51 First commit 2019-05-22 10:15:28 +02:00
Mathias Baumann
cbf81b123a Fix new found spelling mistakes and add exceptions 2019-05-21 10:59:34 +02:00
chriseth
e324deabd6
Merge pull request #6740 from ethereum/unary-ops
[Sol -> Yul] Implement Int/Bool Unary: ++, --, ~, !
2019-05-20 18:06:01 +02:00
chriseth
af2bdfd2fa
Merge pull request #6793 from ethereum/irCheckedMul
[Sol - Yul] Implement checked multiplication.
2019-05-20 17:54:57 +02:00
Daniel Kirchner
b6f4d4e9bc [Sol - Yul] Implement checked multiplication. 2019-05-20 17:36:53 +02:00
chriseth
1dc15d5864 Modify parser and optimizer. 2019-05-20 17:32:56 +02:00
chriseth
46d9df7574 Add EVM opcodes as builtins. 2019-05-20 16:46:31 +02:00
Christian Parpart
63ae9f1415
[isoltest] TestFileParser: Fixes access of iterator at and beyond iterator ends. 2019-05-20 16:29:03 +02:00
Mathias Baumann
86000fdcce [Sol -> Yul] Implement unary -, + 2019-05-20 16:14:46 +02:00
chriseth
e08f521b7e
Merge pull request #6764 from ethereum/smt_fix_tuple_ice
[SMTChecker] Fix ICE in unsupported function calls with multi return values
2019-05-20 15:18:11 +02:00
Mathias Baumann
7dbcb80523 [Sol -> Yul] Implement Int/Bool Unary: ++, --, ~, ! 2019-05-20 11:43:12 +02:00
chriseth
4bdb981224 Make dialect const& and allocate single instances statically. 2019-05-17 12:54:24 +02:00
chriseth
570db164c9 Make Dialect const. 2019-05-16 21:51:54 +02:00
Daniel Kirchner
e20fbd388b
Merge pull request #6779 from ethereum/gasCostFix
Fix gas cost test.
2019-05-16 21:48:05 +02:00
chriseth
315f66fc93
Merge pull request #6771 from ethereum/fixConstructorABIV2
Fix handling of structs of dynamic size as constructor parameters.
2019-05-16 20:53:16 +02:00
Daniel Kirchner
95ed4daf20 Subtract bzzr0 data cost from used gas in gas cost test. 2019-05-16 20:38:25 +02:00
Leonardo Alt
60a4f03d3d [SMTChecker] Fix ice in unsupported functions with multi return values 2019-05-16 18:23:42 +02:00
chriseth
f2ae30f620 Fix handling of structs of dynamic size as constructor parameters. 2019-05-16 17:10:54 +02:00
chriseth
54ce3df321
Merge pull request #6755 from ethereum/useShiftDirectly
[Optimizer] Use shift directly instead of multiplication in constant optimizer.
2019-05-16 15:49:02 +02:00
chriseth
38d92a1163
Merge pull request #6746 from ethereum/splitMovable
Split movable property into movable and side-effect-free
2019-05-16 13:25:15 +02:00
chriseth
5824f5d42f Use shift directly instead of multiplication in constant optimizer. 2019-05-16 12:50:53 +02:00
chriseth
fa23601d52
Merge pull request #6766 from ethereum/isoltest-constructor-arguments
[soltest] Adds support for constructor arguments
2019-05-16 12:36:50 +02:00
chriseth
733677690e Update tests. 2019-05-16 12:30:05 +02:00
chriseth
f6437a2016 Optimizer rules that combine shifts and masks. 2019-05-15 20:30:53 +02:00
chriseth
38f7cfa0c4
Merge pull request #6757 from ethereum/cmdlineMetadata
Fix cmdline tests that depended on metadata.
2019-05-15 14:26:46 +02:00
chriseth
ce19e2e4bc
Merge pull request #6599 from ethereum/ipfsHash
Add IPFS hash of source files to metadata.
2019-05-15 14:21:58 +02:00
Daniel Kirchner
e8480664d3 Move output selection wildcard tests from command line tests to StandardCompiler.cpp. 2019-05-15 13:15:59 +02:00
Erik Kundt
5d85ab49b9 Allow the constructor to revert. 2019-05-15 12:24:23 +02:00
Erik Kundt
94597ad9ae Adds support for constructor arguments in isoltest. 2019-05-15 12:01:14 +02:00
chriseth
d753fcdb36 Tools to compute UnixFS IPFS hash. 2019-05-14 11:52:11 +02:00
chriseth
246c1c939f Tests. 2019-05-13 18:58:55 +02:00
chriseth
2182dd35d7 Update IR expectations. 2019-05-13 17:42:25 +02:00
chriseth
2d2f4943de
Merge pull request #6732 from ethereum/splitStructuralSimplifier
Split structural simplifier
2019-05-13 11:41:25 +02:00
chriseth
dd4f9bf1a6 Really split structural simplifier. 2019-05-13 10:26:57 +02:00
chriseth
d9831c8b96 Split structural simplifier. 2019-05-13 10:26:57 +02:00
chriseth
37375b4271
Merge pull request #6606 from ethereum/stdin-output-wildcard
Fix wildcard as output selector in standard JSON
2019-05-13 10:24:13 +02:00
chriseth
8c232e8196
Merge pull request #6690 from ethereum/useConditionalWhiskers
Use conditional whiskers
2019-05-13 10:23:30 +02:00
chriseth
03c8e43da5
Merge pull request #6605 from ethereum/natspec-colon-fix
Fix Natspec parser error
2019-05-13 10:19:47 +02:00
chriseth
e5d46767f1
Merge pull request #6722 from ethereum/smt_fix_variable_usage
[SMTChecker] Fix VariableUsage for IndexAccess
2019-05-13 10:17:26 +02:00
chriseth
a28b6224a4
Merge pull request #6714 from ethereum/finishERC20
Finish ERC20
2019-05-13 10:00:38 +02:00
Erik Kundt
2b021eaa30 Allows wildcard as output selector in standard JSON. 2019-05-10 18:58:51 +02:00
chriseth
ea637f2097
Merge pull request #6424 from ethereum/external-tests-colony
Add external Colony Networks tests
2019-05-10 13:17:03 +02:00
Leonardo Alt
3ea5c112d3 [SMTChecker] Fix VariableUsage for IndexAccess 2019-05-10 11:28:10 +02:00
Erik Kundt
656364d967 Fixes Natspec parser error when whitespace is missing. 2019-05-10 10:53:32 +02:00
chriseth
c0b3da1369
Merge pull request #6664 from ethereum/add-func-defs
[Proto fuzzer] Add function calls, and multi variable declaration/assignment statements
2019-05-09 22:37:55 +02:00
chriseth
89700dbcff
Merge pull request #6665 from ethereum/smt_inline_external_this
[SMTChecker] Inline external function calls to `this`
2019-05-09 19:09:08 +02:00
chriseth
d9bdc4fd89
Merge pull request #6705 from ethereum/smt_fix_const_state_var
[SMTChecker] Fix function call at state var init
2019-05-09 19:05:32 +02:00
chriseth
5e5138869b Test. 2019-05-09 17:57:30 +02:00
chriseth
6ee9ccf140 Test. 2019-05-09 17:36:40 +02:00
chriseth
3f55b52a88 Unify suffixes. 2019-05-09 17:07:18 +02:00
chriseth
eaee4412da Implement word size transform for if. 2019-05-09 16:55:39 +02:00
Leonardo Alt
ef32bf185f [SMTChecker] Inline external function calls to this. 2019-05-09 16:53:30 +02:00
Leonardo Alt
6027383ae5 [SMTChecker] Fix call to function at state var init 2019-05-09 16:12:44 +02:00
Bhargava Shastry
495f7f9013 [Proto fuzzer] Add function calls, and multi variable declaration/assignment statements 2019-05-09 16:00:29 +02:00
chriseth
c3a1c168d0
Merge pull request #6711 from ethereum/solYulIf
[Sol -> Yul] Implement if statements
2019-05-09 15:33:34 +02:00
chriseth
c093d00af1 Update gas test. 2019-05-09 15:27:42 +02:00
Daniel Kirchner
b83f6d8d46 [Sol -> Yul] Implement if statements 2019-05-09 14:52:20 +02:00
Leonardo
9e09b5d33b
Merge pull request #6679 from ethereum/smt_fix_ssa_reset
[SMTChecker] Fix ICE in touched vars
2019-05-09 12:17:32 +02:00
chriseth
0852ccc318
Merge pull request #4764 from ethereum/cbor-version
Store compiler version in CBOR metadata
2019-05-09 10:10:50 +02:00
Mathias Baumann
0abe00d393 [Sol -> Yul] Fix ForLoops and implement WhileLoops 2019-05-09 09:46:19 +02:00
chriseth
f61348728c
Merge pull request #6704 from ethereum/abiEncodeV2Cleanup
Add ABIEncoderV2 cleanup tests.
2019-05-09 09:30:58 +02:00
Leonardo Alt
3d52a6ca68 [SMTChecker] Fix ICE in branch-inline function call-modify local variable 2019-05-09 09:15:11 +02:00
Daniel Kirchner
a6a28ac475 Allow overwriting the release flag for tests and adjust test suite to CBOR metadata. 2019-05-08 22:21:50 +02:00
Alex Beregszaszi
e121c8f3c7 Store compiler version in CBOR metadata 2019-05-08 22:21:50 +02:00
Daniel Kirchner
62dc8d0a87 Add ABIEncoderV2 cleanup tests. 2019-05-08 22:16:06 +02:00
chriseth
4d460915f3
Merge pull request #6655 from ethereum/storageMappings
[SolYul] Storage mappings
2019-05-08 20:38:46 +02:00
Leonardo
241b6b4bae
Merge pull request #6702 from ethereum/smt_fix_asgn_unsupported_type
[SMTChecker] Fix unsupported type assignment
2019-05-08 16:12:46 +02:00
chriseth
595544645e Mappings. 2019-05-08 15:54:52 +02:00
chriseth
4037da9575
Merge pull request #6663 from ethereum/events
Events
2019-05-08 14:58:41 +02:00
chriseth
54a3116ab8
Merge pull request #6698 from ethereum/asmPrinterOneLine
Format short blocks and loops on a single line.
2019-05-08 14:46:02 +02:00
Leonardo Alt
0b046897ae [SMTChecker] Fix unsupported type assignment 2019-05-08 14:28:23 +02:00
chriseth
b4d6f847b4 Events. 2019-05-08 13:29:11 +02:00
chriseth
5fb85a6118
Merge pull request #6662 from ethereum/msgSender
Implement most trivial members.
2019-05-08 13:28:43 +02:00
chriseth
0532a8cef2 Format short blocks and loops on a single line. 2019-05-08 13:28:00 +02:00
chriseth
97f16421f5
Merge pull request #6692 from ethereum/runEndToEndTestsViaYul
Run end to end tests via yul
2019-05-08 12:49:45 +02:00
chriseth
ed450a31a3
Merge pull request #6696 from ethereum/sol-yul-while
Fix wrong test settings
2019-05-08 12:48:57 +02:00
Mathias Baumann
85b67d3820 Fix wrong test settings 2019-05-08 10:46:38 +02:00
Mathias Baumann
78105444f1 Test parsing: Don't use magic numbers 2019-05-08 10:46:19 +02:00
Daniel Kirchner
76b88bdfd8 Allow test cases to indicate fatal errors. 2019-05-07 18:12:21 +02:00
Daniel Kirchner
0a99519142 Move gas cost tests from command line tests to interactive gas cost tests. 2019-05-07 18:12:21 +02:00
chriseth
6c9c54a657
Merge pull request #6657 from ethereum/smt_tuple_multi_decl
[SMTChecker] Support tuples as multi var decl
2019-05-07 17:55:36 +02:00
chriseth
701aed4beb Also run some end to end tests via yul. 2019-05-07 17:37:29 +02:00
chriseth
e43df3b72a Move compile to cpp file. 2019-05-07 17:37:29 +02:00
chriseth
acca390ef5 Most trivial members. 2019-05-07 17:19:45 +02:00
chriseth
815a272238
Merge pull request #6688 from ethereum/whiskersCond
Conditionals for Whiskers
2019-05-07 17:12:53 +02:00
chriseth
b99ad2aaa3
Merge pull request #6639 from ethereum/yul-require-assert
Yul generation of "require" and "assert"
2019-05-07 16:59:37 +02:00
Leonardo Alt
3c7540ceb2 [SMTChecker] Support tuples with multiple var decls 2019-05-07 16:57:27 +02:00
chriseth
133fd18223
Merge pull request #6660 from ethereum/shortCircuiting
Short circuiting
2019-05-07 16:55:12 +02:00
chriseth
a4e8ca06df
Merge pull request #6687 from ethereum/rely-on_flush
TestFramework: Remove polling and use eth_flush instead
2019-05-07 16:54:36 +02:00
chriseth
a060dce9a8 Tests. 2019-05-07 16:48:00 +02:00
chriseth
c604481cef Logical operators. 2019-05-07 15:59:35 +02:00
chriseth
055254847e
Merge pull request #6659 from ethereum/comparisonOperators
Comparison operators
2019-05-07 15:46:21 +02:00
Mathias Baumann
473243ef31 TestFramework: Remove polling and use eth_flush instead 2019-05-07 14:45:59 +02:00
chriseth
2370eefa74
Merge pull request #6680 from ethereum/fixExp
Fix interpreter exp bug.
2019-05-07 12:39:35 +02:00
chriseth
3fa4c3da1e Comparison operations. 2019-05-07 12:35:05 +02:00
Mathias Baumann
7f14352bbf Yul generation of require and assert 2019-05-07 12:19:41 +02:00
chriseth
ad817ac630 Tests for string literals. 2019-05-07 11:55:18 +02:00
chriseth
49b1ff76ae Test file reorganisation. 2019-05-07 11:55:07 +02:00
Erik Kundt
3a69a72eb9 Adds external ColonyNetworks tests. 2019-05-07 11:55:06 +02:00
chriseth
e12da81899
Merge pull request #6672 from ethereum/soltest-string-literals
[soltest] Add support for string literals
2019-05-07 11:54:54 +02:00
chriseth
18bc82e6fd Fix interpreter exp bug. 2019-05-07 11:40:33 +02:00
Erik Kundt
9956319e8b Adds support for string literals to soltest. 2019-05-07 11:36:38 +02:00
chriseth
a21f8a0b66
Merge pull request #6675 from ethereum/smt_delete
[SMTChecker] Support delete
2019-05-07 11:27:41 +02:00
Leonardo Alt
2139c20776 [SMTChecker] Support delete 2019-05-06 18:32:10 +02:00
chriseth
f113f8e4a0 Implement datasize, dataoffset and datacopy for yul interpreter. 2019-05-06 16:59:47 +02:00
Leonardo
e99efec085
Merge pull request #6652 from ethereum/smt_tuple_function
[SMTChecker] Support tuples as function calls with multiple return values
2019-05-06 15:19:24 +02:00
chriseth
dee1c1109c
Merge pull request #6668 from ethereum/smt_fix_short_circuit
Fix short circuit with assignments
2019-05-06 11:40:07 +02:00
chriseth
36c78baa41
Merge pull request #6646 from ethereum/storageAccess
[Yul] Storage access for sol -> yul
2019-05-06 11:33:36 +02:00
Leonardo Alt
80712f44cb Fix short circuit with assignments 2019-05-06 11:04:43 +02:00
Leonardo Alt
5440a53d4d [SMTChecker] Support tuples as function calls with multiple return values 2019-05-03 06:10:22 +02:00
Bhargava Shastry
2d1faf53be Reset loop state (to default) before interpreting for-loop post block 2019-05-02 22:22:19 +02:00
chriseth
befadea0c6
Merge pull request #6600 from sifmelcara/wasm-dialect-transpiler
Add a transformation that replace every u256 variable with four u64 variables
2019-05-02 20:52:58 +02:00
mingchuan
57fc4fde85
Add wordSizeTransform yulOptimizerTests 2019-05-03 01:52:01 +08:00
chriseth
c137455614
Merge pull request #6656 from ethereum/proto-add-terminating-opcodes
[Proto fuzzer]: Add terminating opcodes
2019-05-02 18:45:42 +02:00
chriseth
5bd3ed97bd
Merge pull request #6649 from ethereum/smt_tuple_asgn
[SMTChecker] Support tuple assignment
2019-05-02 18:43:16 +02:00
chriseth
e9f41d1148
Merge pull request #6604 from ethereum/library-self-delegatecall
Error on library calling itself externally
2019-05-02 17:25:25 +02:00
chriseth
aa4d4afcdc LValues and state variables of value type. 2019-05-02 17:03:22 +02:00
chriseth
dcca6f6318 Tests that compile via Yul have to use the Yul optimizer. 2019-05-02 17:02:05 +02:00
chriseth
f5f0804c19
Merge pull request #6504 from ethereum/soltest-interactive-update
[soltest] Improve interactive update routine
2019-05-02 16:41:52 +02:00
Bhargava Shastry
a5524983f9 [Proto fuzzer]: Add terminating opcodes 2019-05-02 15:34:26 +02:00
Leonardo Alt
204dcf1771 [SMTChecker] Support tuple assignments 2019-05-02 12:55:34 +02:00
chriseth
54775a7880
Merge pull request #6647 from ethereum/smt_tuple_decl
[SMTChecker] Support tuple type declaration
2019-05-02 12:49:50 +02:00
Erik Kundt
07744dbd12 Throws error on library calling itself externally. 2019-05-02 12:41:07 +02:00
chriseth
d4c4a473d8
Merge pull request #6622 from ethereum/warn-this-super
Issue warning for variables called `super` or `this`
2019-05-02 12:38:53 +02:00
Leonardo Alt
6c7527ac90 [SMTChecker] Support tuple type declaration 2019-05-02 12:05:21 +02:00
chriseth
6b2dbbffe4
Merge pull request #6620 from ethereum/external-tests-abiv2
Fix typo in external test commons
2019-05-02 11:38:08 +02:00
Erik Kundt
672f874b54 Fixes typo in external test commons. 2019-05-02 11:33:11 +02:00
Mathias Baumann
cf35e5ba02 Issue warning for variables called super or this 2019-05-02 11:30:24 +02:00
chriseth
73484ccaf2
Merge pull request #6640 from ethereum/smt_inherited_state_vars
[SMTChecker] Fix ICE in inherited state var
2019-05-02 10:49:34 +02:00
chriseth
2538bf897d
Merge pull request #6645 from ethereum/add-blockchain-ops
Support generation of calldata, code, extcode and returndata opcodes
2019-05-02 10:47:54 +02:00
Bhargava Shastry
ac7bfec2c0 Support generation of calldata, code, extcode and returndata opcodes 2019-05-02 10:14:25 +02:00
Leonardo Alt
dd4e938265 [SMTChecker] Fix ICE in inherited state var 2019-05-02 10:03:12 +02:00
Leonardo Alt
a6db37ac9c [SMTChecker] Fix bad cast in base constructor modifier. 2019-04-30 18:48:13 +02:00
chriseth
dc13469593
Merge pull request #6589 from ethereum/addReturn
[Yul] Add code generation for "return" and for loops.
2019-04-30 17:07:45 +02:00
chriseth
3b3d9db7af
Merge pull request #6524 from ethereum/cmdlineUpdateInteractive
Only ask for cmdline test updates in interactive runs.
2019-04-30 17:05:53 +02:00
Erik Kundt
8103d22acf Takes type formats in isoltest from contract ABI. 2019-04-30 16:01:04 +02:00
Mathias Baumann
00172192bf Reorganize 'shadows builtin" syntax tests 2019-04-30 15:37:03 +02:00
chriseth
d940f6f7ef
Merge pull request #6611 from ethereum/smt_refactor_assignment
[SMTChecker] Refactor assignment handling
2019-04-30 15:26:51 +02:00
Bhargava Shastry
d894ffad16 Proto fuzzer: Add missing memory and log opcodes and fix visitation bug
for ternary ops
2019-04-30 14:18:00 +02:00
chriseth
bab2391a7c Test case for loops. 2019-04-30 13:10:37 +02:00
chriseth
c1ca16cd33 Implement return. 2019-04-30 13:10:36 +02:00
Leonardo Alt
0cdb9e48b0 Update SMTChecker JSON tests expectation 2019-04-30 11:08:36 +02:00
Erik Kundt
a6cc296cd9 Adds error reporter for auto-updates in (i)soltest. 2019-04-29 15:56:15 +02:00
chriseth
39d153b7a1
Merge pull request #6570 from ethereum/fixMetaSettings
Move metadata settings into its own object.
2019-04-29 15:09:27 +02:00
chriseth
e8ba10bfaa
Merge pull request #6612 from ethereum/abi-functions-assertion
Unifies behaviour for member access of ABI functions
2019-04-29 15:02:40 +02:00
chriseth
3a19d83671
Merge pull request #6578 from ethereum/fix_base_overload
Fix call to base class overloaded functions
2019-04-29 14:33:52 +02:00
Erik Kundt
381ed5a302 Unifies behavior for member access of ABI functions. 2019-04-29 14:27:10 +02:00
chriseth
eef3f95724 Move metadata settings into its own object. 2019-04-29 14:19:27 +02:00
chriseth
1eeca84cad
Merge pull request #6603 from ethereum/abi-function-assertion-fix
Removes assert on magic ABI functions in code generation
2019-04-29 10:15:47 +02:00
chriseth
578d618065
Merge pull request #6594 from ethereum/adjustCodeMetric
Increase code cost for branching statements.
2019-04-29 09:48:59 +02:00
Erik Kundt
c02257207b Removes assert on magic ABI functions during codegen. 2019-04-26 15:01:35 +02:00
Leonardo Alt
371b37b660 Fix direct call to base class overloaded functions 2019-04-26 09:34:15 +02:00
chriseth
00d81929b1
Merge pull request #6576 from ethereum/isoltest-evmversion-comparator
Allow additional EVMVersion comparators in isoltest
2019-04-25 17:37:46 +02:00
chriseth
169b555a22
Merge pull request #6507 from ethereum/smt_address_members
[SMTChecker] Address members
2019-04-25 17:29:42 +02:00
Erik Kundt
15d753a3e0 Allows additional EVMVersion comparators in isoltest. 2019-04-25 17:13:17 +02:00
chriseth
bf104f718f Increase code cost for branching statements. 2019-04-25 17:08:11 +02:00
chriseth
f9ec1231b6 Support period as part of identifiers for Yul and Inline Assembly. 2019-04-25 16:48:16 +02:00
chriseth
309d3e65cf
Merge pull request #6585 from ethereum/fixInvalidFunctionTags
Fix invalid function tags
2019-04-25 16:30:37 +02:00
Leonardo Alt
fc482de695 [SMTChecker] Support address members 2019-04-25 16:24:36 +02:00
chriseth
5b991c1e59 Fix use of uninitialized functions stored in storage. 2019-04-25 15:40:48 +02:00
chriseth
96688717a2
Merge pull request #6521 from ethereum/type_conv_yul-6479
Yul Generation: conversions
2019-04-25 14:29:37 +02:00
chriseth
b6bb3ae482
Merge pull request #6555 from sifmelcara/break-for-loop
[Yul] Disallow function definitions inside for loop init blocks
2019-04-25 11:20:44 +02:00
chriseth
f26cdea6ca Disallow Yul function definitions inside for loop init blocks. 2019-04-25 10:32:00 +02:00
Mathias Baumann
1ef213cc15 Sol -> Yul: Implement explicit cast 2019-04-24 22:52:17 +02:00
Mathias Baumann
944ac6fb6d Sol -> Yul Generation: Implicit conversions 2019-04-24 22:52:17 +02:00
chriseth
6292adbde6
Merge pull request #6580 from ethereum/doNotGenerateInstructionsAsNmes
Prevent instructions to be generated as names.
2019-04-24 22:07:05 +02:00
chriseth
0af8d758a5 Prevent instructions to be generated as names. 2019-04-24 14:35:21 +02:00
mingchuan
5d93c492fe [Yul] More accurate error messages for break/continue 2019-04-23 10:15:19 +02:00
chriseth
aad4373da4 Disable redundent assign eliminator for deeply nested loops. 2019-04-23 09:50:25 +02:00
chriseth
424c6f5639
Merge pull request #6550 from ethereum/smt_this
[SMTChecker] Support this as address
2019-04-19 00:42:33 +02:00
chriseth
1d5559c350
Merge pull request #6554 from ethereum/add-ternary-ops
ossfuzz: Generate addmod and mulmod builtin functions
2019-04-19 00:41:57 +02:00
Leonardo
f8b1326712
Merge pull request #6539 from ethereum/fix-dup-case-literals
ossfuzz: Fixes buggy generation of duplicate case literals
2019-04-19 00:40:26 +02:00
Leonardo Alt
dd1afeba52 [SMTChecker] Support this as address 2019-04-18 17:56:52 +02:00
chriseth
b02fbc5d02
Merge pull request #6503 from ethereum/inlineAsm-yul
Inline asm yul
2019-04-18 17:15:09 +02:00
Mathias Baumann
3d061c83d7 IR: Generate inline asm blocks 2019-04-18 16:49:19 +02:00
Bhargava Shastry
836c466f09 ossfuzz: Generate addmod and mulmod builtin functions 2019-04-18 14:21:02 +02:00
Bhargava Shastry
68b7f40184 ossfuzz: Fixes buggy generation of duplicate case literals 2019-04-18 14:12:23 +02:00
chriseth
fce19bde58
Merge pull request #6545 from ethereum/smt_contracts
[SMTChecker] Support contract type
2019-04-18 13:01:18 +02:00
chriseth
0bfd587363
Merge pull request #6527 from rocky/move-SemVerHandler
Move SemVerHandler to analysis to parsing to increase modularity...
2019-04-18 13:00:45 +02:00
chriseth
87a4ce2679
Merge pull request #6540 from ethereum/add-for-break-continue
Generate break and continue statements inside for loop body.
2019-04-18 12:57:40 +02:00
chriseth
fb302c1c4f
Merge pull request #6473 from ethereum/libeventhash-6435
Fix external ABI type name for contracts
2019-04-18 12:53:34 +02:00
Mathias Baumann
0f4b53e9a0 Fix external ABI type name for contracts 2019-04-18 11:39:48 +02:00
Leonardo Alt
ecd89393ee [SMTChecker] Support contract type 2019-04-17 16:30:11 +02:00
hydai
d5b65fbf5b [Yul] Output an error of a switch case which contains string literals longer than 32 chars 2019-04-17 22:17:18 +08:00
rocky
b424446c5f Move SemVerHandler to analysis to parsing to increase modularity...
If ever you want to separate building analysis from scanning/parsing/ast, this will help.
2019-04-17 10:13:42 -04:00
chriseth
4509e8efbb
Merge pull request #6543 from ethereum/typeprovider-bits
TypeProvider bits
2019-04-17 15:50:08 +02:00
chriseth
922ab0d72d
Merge pull request #6534 from ethereum/reuseLiteralContent-6472
Re-produce the original 'useLiteralContent' setting
2019-04-17 15:41:55 +02:00
Mathias Baumann
b24dd42e47 Re-produce the original 'useLiteralContent' setting 2019-04-17 14:54:51 +02:00
Christian Parpart
721bf367a3
[libsolidity] TypeProvider: eliminate redundant "Type" suffix in provider function signatures. 2019-04-17 14:42:07 +02:00
chriseth
dd15c24320
Merge pull request #6490 from g-r-a-n-t/pass-large-strings-by-value
Pass large strings by value
2019-04-17 14:40:39 +02:00
Grant Wuerker
69b4ce36de Some move semantics improvements. 2019-04-17 14:19:48 +02:00
Bhargava Shastry
6f673f5e81 Generate break and continue statements inside for loop body. 2019-04-17 13:02:47 +02:00
chriseth
669df0d1e5 Allow more filters and rename member. 2019-04-17 12:00:01 +02:00
Erik Kundt
827e13a2d7 Refactors passing of options in isoltest. 2019-04-17 11:36:14 +02:00
Erik Kundt
11087422d6 Adds --test | -t option to isoltest. 2019-04-17 11:36:14 +02:00
chriseth
b8ad8fb15e
Merge pull request #6417 from ethereum/memleaks
Type System API refactor
2019-04-17 11:04:24 +02:00
chriseth
b10fcb4b6c Remove eval. 2019-04-17 10:16:41 +02:00
fnatic
5b6ed7a97c
Removing scope rules for pre block in 'For Loops' 2019-04-17 05:58:40 +05:30
Christian Parpart
58a45f2cb6 [libsolidity] TypeProvider: adds explicit uint256() accessor and removes default params in integerType(...). 2019-04-16 18:28:40 +02:00
Christian Parpart
bf43eebea9 libsolidity: Introducing TypeProvider API, for clear type system ownership. 2019-04-16 18:26:45 +02:00
Christian Parpart
862d798047 [test] AnalysisFramework's instance of CompilerStack to be lazily instanciated. 2019-04-16 18:25:03 +02:00
chriseth
94053c9a52
Merge pull request #6520 from ethereum/addAssertForLoopDeadCode
Add assertion that DeadCodeEliminator needs ForLoopInitRewriter.
2019-04-16 15:52:18 +02:00
chriseth
96d748fdad Remove "pwd" calls, path is already absolute. 2019-04-16 14:43:32 +02:00
chriseth
6bc5068a67 Only ask for cmdline test updates in interactive runs. 2019-04-15 23:51:31 +02:00
chriseth
fb06451f45 Add assertion that DeadCodeEliminator needs ForLoopInitRewriter. 2019-04-15 23:26:56 +02:00
Mathias Baumann
efc8d79d53 Fix wrong location for inline asm blocks 2019-04-15 16:40:07 +02:00
chriseth
bf5792f7ca
Merge pull request #6483 from ethereum/smt_support_mod
[SMTChecker] Support mod
2019-04-15 13:42:18 +02:00
chriseth
73ac8f6220
Merge pull request #6421 from ethereum/smt_fix_variable_usage
[SMTChecker] Refactor VariableUsage
2019-04-15 13:39:10 +02:00
Leonardo Alt
af9f16e014 [SMTChecker] Support mod 2019-04-12 12:39:25 +02:00
Daniel Kirchner
65991c0922
Merge pull request #6481 from ethereum/smt_inline_asm_warning
[SMTChecker] Show unsupported warning for asm blocks
2019-04-12 12:36:26 +02:00
Daniel Kirchner
a4fbb06c2a
Merge pull request #6491 from ethereum/increase-maxSteps-for-opt-yul
Increase upper bound for number of interpreted steps for optimized code
2019-04-12 12:34:47 +02:00
Leonardo
dbc9442f9c
Merge pull request #6484 from sifmelcara/create-SourceReferenceFormatter-shortcut
Add a shortcut for formatting error information
2019-04-12 12:34:08 +02:00
chriseth
565d9837e4 Virtual function calls. 2019-04-11 15:45:43 +02:00
chriseth
18ab8aeb85 Overflow-checked addition. 2019-04-11 15:45:14 +02:00
Mathias L. Baumann
826f2d9084
Merge pull request #6502 from ethereum/fix-ifn-loop
Fix infinite loop when encountering unexpected test specifications
2019-04-11 15:23:40 +02:00
Mathias Baumann
71d752d878 Fix infinite loop when encountering unexpected test specifications 2019-04-11 13:37:42 +02:00
Erik Kundt
e97d4b4aec
Merge pull request #6488 from sifmelcara/cmdlineTests-auto-update
Auto-correct command line tests
2019-04-11 12:17:43 +02:00
mingchuan
d49733dfc3
Fix variable decl scope issue in DeadCodeEliminator
FoorLoopInitRewriter needs to be run before DeadCodeEliminator.
2019-04-10 19:00:29 +08:00
Bhargava Shastry
484c14af81 Increase upper bound for number of interpreted steps for optimized code 2019-04-10 12:57:54 +02:00
mingchuan
f1374066af
Add shortcuts for formatting error information 2019-04-10 18:44:45 +08:00
mingchuan
62a10d85d9
Auto-update command line expectations
Force auto-update all expectations, this make their trailing new lines
consistent
2019-04-08 20:40:04 +08:00
mingchuan
5b0bb0defb
Move lost command line test case to correct location 2019-04-08 20:39:58 +08:00
mingchuan
f705b09b21
Provide option to auto-correct cmdlineTests expectations 2019-04-08 20:39:49 +08:00
Leonardo Alt
4fe303530a [SMTChecker] Show unsupported warning for asm blocks 2019-04-05 16:41:15 +02:00
chriseth
1be3882ade Test shadowing between variables inside and outside of functions. 2019-04-05 13:41:39 +02:00
chriseth
d20b3c9f9f Function grouper is a requirement for the VarNameCleaner. 2019-04-05 13:41:38 +02:00
Leonardo Alt
79d8a4e13a [SMTChecker] Refactor VariableUsage 2019-04-05 11:38:37 +02:00
Mathias Baumann
a83e54cfd3 TestFramework: Use getBlockByNumber and eth_flush to get transaction confirmation 2019-04-04 16:39:15 +02:00
Mathias Baumann
58a3148ffb TestFramework: also output failed request 2019-04-04 16:39:15 +02:00
chriseth
3df4936b6f
Merge pull request #6179 from ethereum/solidity-yul1
Solidity to Yul compiler
2019-04-04 16:33:39 +02:00
chriseth
50ded99b4d
Merge pull request #6470 from ethereum/throwInFuzzer
Throw exception to allow fuzzer to report which file it failed on.
2019-04-04 16:18:57 +02:00
chriseth
141c6da534 Semantic tests for compilation via Yul. 2019-04-04 15:02:43 +02:00
chriseth
420a7dc3d6 Initial IR generator. 2019-04-04 15:02:42 +02:00
Daniel Kirchner
d0fda7ca7c
Merge pull request #6262 from ethereum/abiEncodeCalldataArray
ABIEncoderV2: implement encoding of calldata arrays and structs.
2019-04-04 14:51:45 +02:00
chriseth
ef413bb0b3 Throw exception to allow fuzzer to report which file it failed on. 2019-04-04 14:05:38 +02:00
chriseth
3795569da6
Merge pull request #6448 from ethereum/forceYulOptimization
Run tests with both ABIV2 and Yul optimizer.
2019-04-04 13:51:54 +02:00
Bhargava Shastry
762dd24784 Reference only those variables that are in scope. 2019-04-04 13:28:56 +02:00
chriseth
c0ce540e26 Run tests with both ABIV2 and Yul optimizer. 2019-04-04 13:18:30 +02:00
Daniel Kirchner
91a2a9a9c3 Implement ABI encoding of calldata arrays and structs. 2019-04-04 13:05:32 +02:00
Bhargava Shastry
f15cedad7a yulInterpreter: More fine-grained exception handling 2019-04-04 13:02:55 +02:00
chriseth
887112b1b0 Fix SSA for multi-assignments. 2019-04-04 12:06:04 +02:00
chriseth
8c570f31c5
Merge pull request #6442 from ethereum/smt_unary_inc_dec
[SMTChecker] Support unary inc/dec for array/mapping access
2019-04-04 11:45:13 +02:00
chriseth
ee2f566207
Merge pull request #5815 from ethereum/strict-abi-decoder
Strict abi decoder (validate incoming data instead of cleaning it)
2019-04-04 11:13:44 +02:00
Mathias Baumann
d46f29e128 Add bitshift optimizer tests 2019-04-03 22:38:31 +02:00
Daniel Kirchner
5ff1f85231 Adjust semantics tests. 2019-04-03 17:59:04 +02:00
chriseth
e3d7a34c2c Make yul a setting. 2019-04-03 14:58:20 +02:00
chriseth
aeb260cde1 Add settings framework for interactive tests. 2019-04-03 14:58:20 +02:00
chriseth
3282c72a21 Update tests. 2019-04-03 11:32:03 +02:00
Alex Beregszaszi
43008dd08e Validate value types in decoder of ABIEncoderV2. 2019-04-03 11:32:02 +02:00
chriseth
1b7878cfde
Merge pull request #6445 from ethereum/circularStorageMemoryCopy
Implemented copying recursive structs from storage to memory.
2019-04-03 10:20:23 +02:00
Leonardo Alt
aa9b9aa87e [SMTChecker] Support unary inc/dec for array/mapping access 2019-04-02 16:53:19 +02:00
Daniel Kirchner
ab8dfed144 Implement copying recursive structs from storage to memory. 2019-04-02 16:01:44 +02:00
chriseth
7c880a26c0
Merge pull request #6431 from ethereum/external-tests-split
Split up external tests
2019-04-02 14:39:00 +02:00
Erik Kundt
79e74b75d1 Splits up external tests into separate files. 2019-04-02 13:42:58 +02:00
Bhargava Shastry
0cc6e1cb08 Use default EVMVersion instead of a hard coded one 2019-04-02 11:40:59 +02:00
chriseth
e894e0b967
Merge pull request #6410 from ethereum/eliminate-dead-code
Yul Optimizer: Remove dead code
2019-04-01 18:12:47 +02:00
chriseth
862ad28edd
Merge pull request #6433 from ethereum/fuzzhelp
Run several instances of solfuzzer in parallel
2019-04-01 17:49:58 +02:00
Mathias Baumann
3216e5d846 Run several instances of solfuzzer in parallel 2019-04-01 17:18:15 +02:00
Mathias Baumann
e20acf5d0a Yul Optimizer: Remove dead code 2019-04-01 17:16:04 +02:00
Mathias Baumann
30820dda99 Support multiple input files with solfuzzer 2019-04-01 16:57:32 +02:00
chriseth
e7340f2126
Merge pull request #6430 from ethereum/fuzzhelp
Fix --help parameter for solfuzzer
2019-04-01 16:51:15 +02:00
Mathias Baumann
101ca5c120 Fix --help parameter for solfuzzer
the `readStandardInput()` branch would be taken if "input-file" was not
given and only "help", thus never reaching the check for "help"
2019-04-01 15:50:34 +02:00
chriseth
45e3cce765 Force-activate ABIEncoderV2 in external tests. 2019-04-01 15:36:03 +02:00
Erik Kundt
c72686b343 Fixes forced optimizer settings in external tests. 2019-04-01 14:53:21 +02:00
Mathias Baumann
5c66ccc179 Optimize obsolete ANDs in combination with certain SHIFTs 2019-03-29 10:08:05 +01:00
Alex Beregszaszi
84fbf605aa Replace shifts by larger than 255 with 0 2019-03-29 10:07:54 +01:00
chriseth
f9820adb5e
Merge pull request #6396 from ethereum/optSetForAsmStack
Make optimiser settings available to assembly stack.
2019-03-28 19:03:23 +01:00
chriseth
84251e5a22
Merge pull request #6405 from ethereum/smt_compound_assignment
[SMTChecker] Support arithmetic compound assignment operators.
2019-03-28 18:27:25 +01:00
chriseth
3264e9abf0 Make optimiser settings available to assembly stack. 2019-03-28 18:24:13 +01:00
Leonardo Alt
dadafed022 Short circuit tests 2019-03-28 16:08:30 +01:00
Leonardo Alt
a7e826a224 [SMTChecker] Implement short circuit 2019-03-28 16:08:30 +01:00
chriseth
a1d59dfb4c
Merge pull request #6371 from ethereum/smt_variable_usage_function_calls
[SMTChecker] Merge SSA state vars properly
2019-03-28 15:54:31 +01:00
chriseth
30da62aa2c
Merge pull request #6408 from ethereum/includeCleanup
Include cleanup
2019-03-28 15:31:07 +01:00
Leonardo Alt
c7e5468505 Arithmetic compound assignment operators tests 2019-03-28 15:27:52 +01:00
chriseth
2b0c653f57
Merge pull request #6241 from ethereum/yul-bc-codegen
Yul codegen for break & continue statements
2019-03-28 14:48:50 +01:00
chriseth
20ae3ad555 Remove "using namespace". 2019-03-28 14:32:48 +01:00
Leonardo Alt
2764d2f525 Tests that used to give false negatives 2019-03-28 14:32:47 +01:00
chriseth
529aca5cbd
Merge pull request #6407 from ethereum/changeNamespace
Remove "using namespace" from header and move Instruction to dev::eth.
2019-03-28 14:32:07 +01:00
Christian Parpart
b8c6274179 [yul] Implements EVM codegen for break/continue plus respective tests & ChangeLog entry. 2019-03-28 14:09:25 +01:00
chriseth
2308904f68 Remove "using namespace" from header and move Instruction to dev::eth. 2019-03-28 13:48:11 +01:00
chriseth
6d8e84c93e
Merge pull request #6315 from ethereum/yul-for-continue-tests
[Yul] RedundantAssignEliminator adoptions for continue/break AST nodes
2019-03-28 12:18:02 +01:00
chriseth
ff1e5c2298
Merge pull request #6372 from ethereum/update-external-tests
Update external tests
2019-03-28 11:26:38 +01:00
Erik Kundt
3e6de8904b Reactivates external gnosis-safe tests. 2019-03-28 10:31:08 +01:00
Erik Kundt
7808af79ae Modularize external test setup. 2019-03-28 10:31:03 +01:00
chriseth
91f96c299e More logic about control flow with continue and about finalize. Remove BlockScope. 2019-03-27 22:16:31 +01:00
Bhargava Shastry
10c3b31fa4 yulInterpreter: Add timeout based on the number of interpreted statements. 2019-03-27 12:06:02 +01:00
Christian Parpart
a1ec49409d Yul] RedundantAssignEliminator: Implements break/continue handling within ForLoop. 2019-03-26 17:36:43 +01:00
Bhargava Shastry
b3c3a1f9cd Use visitor pattern for proto converter. 2019-03-26 16:39:44 +01:00
chriseth
72c0e44907
Merge pull request #6338 from ethereum/compilerstack-setsource
Introduce setSources in CompilerStack
2019-03-26 15:31:57 +01:00
Bhargava Shastry
ef94d6d645 yul Interpreter: Move memory size limit to interpreter state. 2019-03-26 14:42:25 +01:00
Bhargava Shastry
a895ccba39 ossfuzz: Enable optimization in Assembly stack assembler call. 2019-03-26 13:42:51 +01:00
Mathias Baumann
bfe3f378b2 Fix throw in error output 2019-03-26 11:32:08 +01:00
chriseth
d079cdbfaa
Merge pull request #6362 from ethereum/fixABIEncoderV2StorageRead
Fix abi encoder v2 storage read
2019-03-26 10:23:08 +01:00
Alex Beregszaszi
e211b5b1e1 Add warning that Yul is still experimental 2019-03-25 20:17:11 +00:00
Alex Beregszaszi
0432401e20 Emit warning when using the Yul optimiser 2019-03-25 18:38:06 +01:00
chriseth
6b9c44d5f9 Tests for arrays. 2019-03-25 18:28:44 +01:00
chriseth
3039456f48 Tests for encoder from storage bug. 2019-03-25 18:28:43 +01:00
Alex Beregszaszi
3ee8bb6814 Use setSource in tests 2019-03-25 15:11:08 +00:00
Mathias L. Baumann
dce27bb452
Merge pull request #6370 from ethereum/more-info-after-ci-fail
Provide more info when CI fails
2019-03-25 16:08:16 +01:00
Mathias Baumann
e478115d26 Provide more info when CI fails 2019-03-25 15:16:03 +01:00
Alex Beregszaszi
76c3c54c12
Merge pull request #6360 from ethereum/split-imports-test
Split imports tests to avoid resetting CompilerStack
2019-03-25 13:15:38 +00:00
chriseth
caddce6ef0 Detect duplicate cases based on integer value of case label. 2019-03-25 12:38:22 +01:00
Alex Beregszaszi
d9303d4cfb Split imports tests to avoid resetting CompilerStack 2019-03-25 11:33:21 +00:00
chriseth
b17daee20e
Merge pull request #6358 from ethereum/fixLLLTests
Fix LLL tests.
2019-03-25 11:49:53 +01:00
chriseth
31fa51b1f8 Fix LLL tests. 2019-03-25 10:53:49 +01:00
Alex Beregszaszi
532d43e0c8 Exclude metadata in compiler test
In SolidityCompiler/does_not_include_creation_time_only_internal_functions.
2019-03-22 17:35:15 +00:00
Alex Beregszaszi
3bc2c35cc4 Support compiling Yul within StandardCompiler 2019-03-22 01:35:16 +00:00
Alex Beregszaszi
ed1ad2fc14
Merge pull request #6317 from ethereum/byte_optimization_bugfix
Fixes bug in byte optimization rule and adds tests.
2019-03-21 21:49:34 +00:00
Alex Beregszaszi
7d94d3af20
Merge pull request #6309 from ethereum/proto-add-str-hex-lit
yul proto: Add support for generating string and hex literals.
2019-03-21 21:47:58 +00:00
Alex Beregszaszi
cbbc2df506
Merge pull request #6351 from ethereum/smt_shortcircuit_test
[SMTChecker] Add buggy short circuit test
2019-03-21 21:24:51 +00:00
Leonardo Alt
2ae778bf0a [SMTChecker] Add buggy short circuit test 2019-03-21 18:47:14 +01:00
chriseth
2de5554e4a Fix MacOS commandline tests. 2019-03-21 18:19:05 +01:00
Bhargava Shastry
f7b5a27581 Fixes bug in byte optimization rule and adds tests. 2019-03-21 14:29:06 +01:00
Bhargava Shastry
d1d3dd8571 yul proto: Add support for generating string and hex literals. 2019-03-21 12:25:52 +01:00
chriseth
d381e26fc8 Rename "enabled" optimizer setting stage to "standard". 2019-03-21 11:04:40 +01:00
chriseth
51ae865b96
Merge pull request #6222 from ethereum/internal-error-maybe
Disallow internal function types as parameters for public/external library function
2019-03-21 09:18:23 +01:00
chriseth
ebb8c1758e
Merge pull request #6339 from ethereum/lll-test-fix
Fix LLL tests using the opimiser
2019-03-21 08:54:07 +01:00
Mathias Baumann
8e899a0d32 Disallow internal function types as parameters for public/external library function 2019-03-21 07:25:57 +01:00
Alex Beregszaszi
7ec3eaa40d Fix LLL tests using the opimiser 2019-03-20 19:21:24 +00:00
Bhargava Shastry
22f5a82edc yul proto: Add support for generating for and switch statements. 2019-03-20 18:50:27 +00:00
chriseth
064f73be0c
Merge pull request #6249 from ethereum/optimizerTests
Change optimizer tests so that they also always test the peephole optimizer.
2019-03-20 18:38:06 +01:00
chriseth
9aab2329ed
Merge pull request #6244 from ethereum/smt_modifiers
[SMTChecker] Support modifiers
2019-03-20 18:04:28 +01:00
chriseth
6ac0ee1751
Merge pull request #5946 from bshastry/yul_opt_ossfuzz
Adds an oss-fuzz harness to fuzz AssemblyStack API calls for parsing …
2019-03-20 16:26:56 +01:00
chriseth
d788a88873 Use "none" and "full" optimizer settings in the optimizer tests. 2019-03-20 16:11:37 +01:00
chriseth
2fd6661b09 Add tests for some optimizer rules. 2019-03-20 16:10:59 +01:00
chriseth
8468dca0bb
Merge pull request #6323 from ethereum/bug-637
Fix function calls with named arguments for overloaded functions
2019-03-20 16:07:09 +01:00
Bhargava Shastry
6c1d0b62b5 Adds oss-fuzz harnesses to fuzz AssemblyStack API calls for parsing/optimizing StrictAssembly and generating EVM bytecode. 2019-03-20 16:06:45 +01:00
chriseth
57f99247c8 Update tests. 2019-03-20 15:07:05 +01:00
chriseth
8514c0bc60 Provide max iterations for stack compressor as parameter. 2019-03-20 15:07:05 +01:00
chriseth
38cbf8d230 Pass "optimize stack allocation" flag down to the stack compressor. 2019-03-20 15:03:27 +01:00
Mathias Baumann
84b68006ba Fix function calls with named arguments for overloaded functions 2019-03-20 14:54:41 +01:00
Leonardo Alt
9659f40c8d [SMTChecker] Support modifiers 2019-03-20 11:32:20 +01:00
chriseth
4d89fc1644
Merge pull request #6320 from ethereum/callvalue_nonpayable
Inline Assembly: Issue error for callvalue in nonpayable function
2019-03-20 10:07:09 +01:00
Leonardo Alt
0386d39942 Add test with internal function 2019-03-19 20:45:27 +01:00
Leonardo Alt
9acec99c31 Issue error for callvalue in nonpayable function 2019-03-19 20:45:27 +01:00
chriseth
87ebb16890 Use ABI_CHECK for event data comparison. 2019-03-19 17:23:50 +01:00
chriseth
304ef77b4a
Merge pull request #6300 from ethereum/extractedTestsEVMVersionRules
Support EVM Version rules for extracted tests.
2019-03-18 15:29:04 +01:00
Daniel Kirchner
a178486436 Review suggestions. 2019-03-18 14:34:00 +01:00
Christian Parpart
82ced641e5
[Yul] Adds another test case for multiple continue statements within a for-loop 2019-03-18 12:43:20 +01:00
chriseth
834c23fc38
Merge pull request #6289 from ethereum/strictasm_fuzzer_ascii_only
Discard fuzz input containing non ASCII character(s).
2019-03-18 11:44:06 +01:00
Bhargava Shastry
725fc898fd Discard fuzz input containing at least one character not in the following set: "isprint"able, newline, and horizontal
Co-Authored-By: bshastry <bshastry@ethereum.org>
2019-03-18 10:36:43 +01:00
Daniel Kirchner
4a28e1eb43 Support EVM Version rules for extracted tests. 2019-03-15 17:23:20 +01:00
Bhargava Shastry
5e8ed426df Add more binary operations to the yul proto spec. 2019-03-14 22:26:25 +01:00
chriseth
500843f9c5
Merge pull request #6242 from ethereum/yul-bc-dataflow
Yul dataflow analysis for continue/break statements
2019-03-14 16:34:34 +01:00
Christian Parpart
57bcb8ba83
[yul] Ensures DataFlowAnalyzer works fine with break/continue statements just like without. 2019-03-14 16:18:45 +01:00
chriseth
85a0d6a334
Merge pull request #6118 from ethereum/useStackOpt
Use stack optimizations.
2019-03-14 15:58:47 +01:00
chriseth
a3fbbe2019
Merge pull request #6291 from ethereum/proto-bugfixes
Proto spec and translator bug fixes.
2019-03-14 15:54:29 +01:00
Bhargava Shastry
5681086d2c Proto spec and translator bug fixes. 2019-03-14 15:40:54 +01:00
chriseth
308e3ef1cd Add test for standard compiler. 2019-03-14 15:34:23 +01:00
chriseth
49d914a391 Fix and test yul stack optimization flag for commandline interface. 2019-03-14 15:34:23 +01:00
chriseth
6d1ed93247 Use stack optimizations. 2019-03-14 15:34:23 +01:00
Erik Kundt
b9a7a88346 Improves Result<T> in order to prevent defects. 2019-03-14 14:33:28 +01:00
Erik Kundt
6ac5c52528 Implements merging of Result<T>. 2019-03-14 14:33:28 +01:00
chriseth
d1d6d59c80
Merge pull request #6281 from ethereum/fixYulAssertion
Fix assertion in yul interpreter.
2019-03-14 11:22:51 +01:00
Erik Kundt
ac5f860df9 Fixes hex string update via isoltest. 2019-03-14 11:01:26 +01:00
chriseth
db379403fc Fix assertion in yul interpreter. 2019-03-13 20:58:15 +01:00
Erik Kundt
2a536911f2 Prints returned / expected byte ranges if conversion failed. 2019-03-13 17:45:02 +01:00
chriseth
55c66b0178 Fix gas costs. 2019-03-13 14:18:53 +01:00
chriseth
2896d6176b
Merge pull request #6120 from ethereum/soltest-hex-strings
[soltest] Add support for hex string literals
2019-03-13 14:12:32 +01:00
Erik Kundt
25ddf85d95 Adds support for hex string literals in soltest. 2019-03-13 12:37:33 +01:00
chriseth
58a3f3cf68
Merge pull request #6248 from ethereum/shiftopt-fix-overflow
Fixes u256 overflow in logical shift optimization rule and adds tests.
2019-03-13 12:02:33 +01:00
Bhargava Shastry
515fa872c8 Fixes u256 overflow in logical shift optimization rule and adds tests. 2019-03-13 11:19:20 +01:00
Erik Kundt
39c45ac8ed Moves ecrecover tests to isoltest. 2019-03-13 10:53:10 +01:00
Christian Parpart
cfefa2c1d1
Merge pull request #6136 from ethereum/yul-break-continue
[Yul] introduce break/continue keywords.
2019-03-11 20:38:57 +01:00
chriseth
8445449c7f
Merge pull request #6187 from ethereum/filter-library-abi-3409
Exclude internal functions in library ABIs
2019-03-11 17:39:51 +01:00
chriseth
6683ec90ca
Merge pull request #6209 from ethereum/dynamicCalldataStructs
Allow dynamically encoded calldata structs with ABIEncoderV2.
2019-03-11 17:05:34 +01:00
Daniel Kirchner
66fc7ffab2 Allow dynamically encoded calldata structs with ABIEncoderV2. 2019-03-11 16:40:13 +01:00
Mathias Baumann
fbbd03dbd7 Exclude internal functions in library ABIs 2019-03-11 16:33:44 +01:00
Mathias Baumann
e411a502fd Fix missing trailing dot in error message 2019-03-11 16:15:18 +01:00
Daniel Kirchner
f805939429
Merge pull request #6221 from ethereum/soltest-signature-struct-arrays
[soltest] Allow struct array in function signatures
2019-03-11 15:32:42 +01:00
Alex Beregszaszi
859f905b2e
Merge pull request #6237 from ethereum/smt_merkle_proof_test
[SMTChecker] Add MerkleProof test that used to crash
2019-03-11 15:17:46 +01:00
Christian Parpart
05e2d362c8 [Yul] Adds break/continue statements and some general tests for for-loop syntax. 2019-03-11 15:05:05 +01:00
chriseth
0f98f2a15e
Merge pull request #6236 from ethereum/better-errors
isImplicitlyConvertibleTo(): Add better error messages
2019-03-11 14:58:45 +01:00
Erik Kundt
cd9c0914cb Allows struct array in soltest function. 2019-03-11 14:36:16 +01:00
Alex Beregszaszi
6718b62f94
Merge pull request #6233 from ethereum/metadata-tests
Improve metadata tests (add CBOR parser)
2019-03-11 14:35:04 +01:00
Leonardo Alt
365b59b1f9 Add MerkleProof test that used to crash 2019-03-11 14:29:47 +01:00
Mathias Baumann
d70cb375cf isImplicitlyConvertibleTo(): Add better error messages 2019-03-11 13:38:02 +01:00
Alex Beregszaszi
67c15a208d Use CBOR parser in metadata tests 2019-03-11 13:01:37 +01:00
Alex Beregszaszi
61220eb3e0 Add tiny CBOR parser 2019-03-11 13:01:37 +01:00
Leonardo Alt
a8209e9899 [SMTChecker] Shortcut RationalNumber expressions 2019-03-11 12:53:49 +01:00
Alex Beregszaszi
12f34c8229 Add onlyMetadata helper in test/Metadata 2019-03-09 12:34:26 +01:00
chriseth
5c4a3aa270
Merge pull request #6213 from ethereum/iszeroJump
Peephole optimizer for "iszero iszero <tag> jumpi".
2019-03-07 18:16:29 +01:00
chriseth
0eb799424d
Merge pull request #6183 from ethereum/soltest-alignment
[soltest] Introduce explicit alignment
2019-03-07 17:43:59 +01:00
chriseth
e0d1b2f5b3 Peephole optimizer for "iszero iszero <tag> jumpi". 2019-03-07 15:52:02 +01:00
Leonardo Alt
02d0e609b9 [SMTChecker] Support enums 2019-03-07 15:15:12 +01:00
chriseth
7241aa755c
Merge pull request #6186 from ethereum/runExternalTestsWithOptimizer
Run external tests with and without optimizer.
2019-03-07 12:57:03 +01:00
chriseth
8d9be8bb6d
Merge pull request #6211 from ethereum/fixFormatting
Fix formatting and compilation error.
2019-03-06 22:55:02 +01:00
chriseth
553f578d03 Fix compilation error. 2019-03-06 22:01:19 +01:00
chriseth
791fde953d First simplify switch with known constant expression. 2019-03-06 21:32:55 +01:00
chriseth
aa062221bb Tabs, not spaces! 2019-03-06 21:32:10 +01:00
chriseth
0f336f30ca
Merge pull request #6207 from ethereum/fixStructuralVisitationOrder
Fix visitation order bug for structural simplifier.
2019-03-06 21:29:17 +01:00
chriseth
0f7b1b31a1
Merge pull request #5996 from ethereum/calldataArrays
Allow calldata arrays with dynamically encoded base type.
2019-03-06 19:55:57 +01:00
chriseth
21115f8050 Fix visitation order bug for structural simplifier. 2019-03-06 19:34:07 +01:00
Mathias Baumann
21322dae29 YulOpt: Remove empty cases 2019-03-06 19:02:23 +01:00
Mathias Baumann
3ce7069766 YulOpt: Remove empty cases 2019-03-06 18:39:44 +01:00
Erik Kundt
a40fbf0fc4 Right-aligns hex numbers and introduces alignment built-ins. 2019-03-06 18:24:13 +01:00
chriseth
3ccf73b3eb
Merge pull request #6204 from ethereum/soltest-signature-arrays
[soltest] Add support for arrays in function signatures
2019-03-06 18:12:39 +01:00
Daniel Kirchner
e3148b5c45 Tests for arrays with dynamically encoded base types. 2019-03-06 18:04:24 +01:00
Daniel Kirchner
f9dc30c3d1 Add generalized dynamic array encoding to ExecutionFramework. 2019-03-06 18:04:12 +01:00
Daniel Kirchner
f7c6eda2c3 Allow calldata arrays with dynamically encoded base type. 2019-03-06 18:04:12 +01:00
chriseth
cdf29277f7
Merge pull request #6055 from ethereum/smt_arrays
[SMTChecker] Add support to arrays
2019-03-06 18:00:23 +01:00
Erik Kundt
ab31c28ed9 Adds support for arrays in function signatures. 2019-03-06 16:47:00 +01:00
chriseth
dc69152238
Merge pull request #6143 from ethereum/fix-unimplemented-assert-5659
Check base contracts for abi encoder compatibility
2019-03-06 11:59:49 +01:00
Bhargava Shastry
54d0d153fa Reduce input file size for solc and constant optimizer fuzzers. 2019-03-06 11:35:22 +01:00
Leonardo Alt
29b2ab6f66 Handle aliasing 2019-03-06 11:29:54 +01:00
Leonardo Alt
cb6c2b33f8 Add tests 2019-03-06 11:29:26 +01:00
Leonardo Alt
e74f58130e Add SMT type support to Solidity arrays 2019-03-06 11:29:26 +01:00
Mathias Baumann
9919670ddd Check base contracts for abi encoder compatibility 2019-03-06 11:16:54 +01:00
chriseth
4740dc62df
Merge pull request #6193 from ethereum/yul-opt-different-types-6181
YulOpt: Extend StructuralSimplifier to work with all types
2019-03-05 19:11:13 +01:00
Mathias Baumann
f6e09d6368 YulOpt: Extend StructuralSimplifier to work with all types 2019-03-05 18:39:27 +01:00
Mathias Baumann
921d52bfcd Move Literal to u256 conversions to extra functions
That way we can reuse them at different places
2019-03-05 18:39:27 +01:00
Bhargava Shastry
a370551ea2 ossfuzz: Reduce test input size to less than equal to 600 bytes. 2019-03-05 16:55:55 +01:00
chriseth
d70da689ef Run external tests with and without optimizer. 2019-03-05 14:53:36 +01:00
Bhargava Shastry
d9bcbe6ad5 LibProtobuf Mutator (LPM) based fuzzer for yul subset 2019-03-05 12:32:55 +01:00
chriseth
d0ab5454f8
Merge pull request #6171 from ethereum/ignorePrefixWhileInlining
Do not prepend function name to all variables when inlining.
2019-03-05 11:36:53 +01:00
chriseth
bbda89c428 Create a differential fuzzer using tracing facility from the yul interpreter. 2019-03-04 20:44:17 +01:00
chriseth
6c9961e040
Merge pull request #5941 from ethereum/metadata-compilerstack
Metadata should not require compilation
2019-03-04 18:53:07 +01:00
chriseth
2d48377f4b
Merge pull request #6157 from ethereum/allocate-memory
Add allocateMemory helper with value known at compile time
2019-03-04 18:35:04 +01:00
chriseth
3f784d6e00 Do not prepend function name to all variables when inlining. 2019-03-04 18:07:00 +01:00
chriseth
38831e885d
Merge pull request #5855 from ethereum/cp
[Yul] Variable Name Canonicalization
2019-03-04 17:58:45 +01:00
Alex Beregszaszi
a96cc6e0e8 Add allocateMemory helper with value known at compile time 2019-03-04 17:46:42 +01:00
Christian Parpart
609855546e Yul: Adds optimizer pass to make variable names suffix-canonical. 2019-03-04 17:26:56 +01:00
chriseth
62b2599cb7 Update tests. 2019-03-04 16:31:08 +01:00
Alex Beregszaszi
fcbb8ec51c Allow returning metadata in StandardCompiler without compilation 2019-03-04 16:19:55 +01:00
chriseth
9a949c1bda Set default EVM version to Petersburg. 2019-03-04 14:53:00 +01:00
Alex Beregszaszi
ecd246aeb6 Support petersburg in evmVersion 2019-03-04 14:10:41 +01:00
chriseth
2e0ea16a0f
Merge pull request #5959 from ethereum/optimiser2
Introduce global optimiser settings.
2019-03-04 12:54:59 +01:00
chriseth
5490a5cd37
Merge pull request #6115 from ethereum/fixUnavailableOpcodes
Make unavailable opcodes errors.
2019-03-04 12:26:22 +01:00
chriseth
43850d55f3 Update tests. 2019-03-04 11:44:54 +01:00
chriseth
851dd635eb Remove defaults in constructor arguments. 2019-03-04 11:41:52 +01:00
chriseth
5ddbc434d6 Provide commandline option to activate yul optimizer. 2019-03-04 11:40:28 +01:00
chriseth
4d10f4b4cf Process and validate standard-json optimizer settings. 2019-03-04 11:40:28 +01:00
Alex Beregszaszi
cf5c13f9c7 Introduce global optimiser settings. 2019-03-04 11:40:28 +01:00
chriseth
0e475438a9
Merge pull request #6142 from ethereum/yul_interpreter_fix_overflow
yulInterpreter: Fix u256 overflow in logMemory.
2019-02-28 23:29:14 +01:00
chriseth
8f5e12c192 Make unavailable opcodes errors. 2019-02-28 22:20:01 +01:00
Alex Beregszaszi
c3ab43dca7 Remove blockhash workaround in tests
This is now obsolete as final constantinople doesn't contain the blockhash EIP.

Revert 3e55aa3fa2.
2019-02-28 21:17:58 +00:00
Bhargava Shastry
c48cc19fae yulInterpreter: Fix u256 overflow in logMemory. 2019-02-28 16:42:50 +01:00
chriseth
ab33ff1408
Merge pull request #6132 from ethereum/ossfuzz-nullref-typechecker
TypeChecker: Check if type exists before dereferencing it
2019-02-28 16:38:54 +01:00
chriseth
3dee9c50cd
Merge pull request #6131 from ethereum/fix-yul-opt
Yul Optimizer: reduce switches with const arguments
2019-02-28 16:28:53 +01:00
Mathias Baumann
50b4193705 TypeChecker: Check if type exists before dereferencing it 2019-02-28 15:49:15 +01:00
Mathias Baumann
c686a65876 Yul Optimizer: reduce switches with const arguments 2019-02-28 15:43:10 +01:00
chriseth
6aab3b1369
Merge pull request #6139 from ethereum/compilerstack-restrict
Restrict the state when settings can be altered in CompilerStack
2019-02-28 14:52:52 +01:00
Alex Beregszaszi
8b6049b733
Merge pull request #6111 from ethereum/fuzz-crash-smt
Fix SMT Checker crash due to missing type information
2019-02-28 13:19:32 +00:00
Alex Beregszaszi
b04b86a938 Restrict the state when settings can be altered in CompilerStack 2019-02-28 12:55:36 +00:00
chriseth
e9543d83c7
Merge pull request #6129 from ethereum/expressionSimplifierToUseDataFlowAnalyzer
Fix expression simplifying by moving from SSAValueTracker to DataFlowAnalyzer as a base.
2019-02-28 12:21:41 +01:00
Mathias Baumann
f782125463 Fix SMT Checker crash due to missing type information 2019-02-28 11:55:45 +01:00
chriseth
4f7f3bf689
Merge pull request #6113 from ethereum/positionalArgForYulRun
Allow positional arguments for yulrun.
2019-02-27 16:24:04 +01:00
chriseth
477c53a46f Fix expression simplifying by moving from SSAValueTracker to DataFlowAnalyzer as a base. 2019-02-27 16:14:39 +01:00
Erik Kundt
9d6ffb7c0f Adds a workaround for truffle npm issue. 2019-02-27 12:37:53 +01:00
chriseth
77a3d08a87
Merge pull request #6104 from ethereum/useCorrectSolcjs
Use correct solcjs binary for testing.
2019-02-27 11:49:02 +01:00
chriseth
5123a2afa7 Allow positional arguments for yulrun. 2019-02-27 11:44:09 +01:00
Erik Kundt
e13bb994fb Fix ambiguous type on Windows. 2019-02-27 10:40:58 +01:00
chriseth
514c9910aa Fix implementation of signextend. 2019-02-26 17:56:32 +01:00
chriseth
ebec54aacb
Merge pull request #6093 from ethereum/mapping-string-keys
Allow dynamic types in public mappings
2019-02-26 17:05:18 +01:00
chriseth
4e74c508ce
Merge pull request #6089 from ethereum/extcodehash
Consider extcodehash as part of Constantinople
2019-02-26 17:04:01 +01:00
Mathias Baumann
e4a52aa2f6 Allow dynamic types in public mappings 2019-02-26 15:48:54 +01:00
chriseth
aba879f39f Use correct solcjs binary for testing. 2019-02-26 15:10:58 +01:00
Alex Beregszaszi
d2f493268b Provide access to the name of contracts. 2019-02-26 14:07:03 +00:00
Alex Beregszaszi
cb7b053a4a Consider extcodehash as part of Constantinople 2019-02-26 12:40:31 +00:00
chriseth
38fc740690
Merge pull request #6080 from ethereum/library-index-access
Disallow index access on contracts and libraries
2019-02-26 13:26:05 +01:00
Alex Beregszaszi
758537b274 Add test for returning string literal in LLL 2019-02-25 23:59:52 +00:00
Erik Kundt
3076d80480 Adds syntax test that covers arrays of contracts. 2019-02-25 23:05:33 +00:00
Erik Kundt
2d0daae796 Disallows index access on contracts and libraries. 2019-02-25 23:05:33 +00:00
Alex Beregszaszi
a498062816 Fix gas test after using shifts in constant optimiser 2019-02-25 19:44:47 +00:00
chriseth
7a2645f7d2
Merge pull request #6079 from ethereum/shift-tests
Add more test cases for shifts with constants
2019-02-25 16:28:06 +01:00
Erik Kundt
e4182e2add Fixes wrong EVMVersion namespace in yulrun. 2019-02-25 15:56:17 +01:00
Alex Beregszaszi
7d52884247 Add more test cases for shifts with constants 2019-02-25 14:44:30 +00:00
chriseth
70bbdd8fac
Merge pull request #3464 from ethereum/iulia_interp
Yul interpreter
2019-02-25 15:38:41 +01:00
Leonardo Alt
2405b2151a EVMVersion in langutil namespace instead of solidity 2019-02-25 15:29:57 +01:00
chriseth
94e2afff81 Rebase update. 2019-02-25 14:30:34 +01:00
chriseth
cc88c517a2 Review changes. 2019-02-25 11:58:37 +01:00
Bhargava Shastry
d564c24f30 POP is actually a valid instruction. 2019-02-25 11:58:37 +01:00
chriseth
0e471ab811 Review comments. 2019-02-25 11:58:37 +01:00
chriseth
5eb155b894 Interpreter tests. 2019-02-25 11:58:36 +01:00
chriseth
e91be8222c Yul interpreter executable. 2019-02-25 11:57:48 +01:00
chriseth
0c432a861c Yul interpreter. 2019-02-25 11:57:48 +01:00
chriseth
8aeebf7fcd
Merge pull request #6071 from ethereum/moveEVMVersionToEVMDialect
Make EVM version part of EVM dialect.
2019-02-25 11:56:53 +01:00
Erik Kundt
f683ceb3f8 Adds support for boolean literals in soltest. 2019-02-21 23:28:48 +01:00
chriseth
7f5b335b47 Make EVM version part of EVM dialect. 2019-02-21 21:59:46 +01:00
chriseth
773a3ff880
Merge pull request #6036 from ethereum/soltest-hexliterals
[soltest] Add support for left-aligned hex literals
2019-02-21 19:11:27 +01:00
chriseth
13667d42ec
Merge pull request #6067 from ethereum/asm-parser-fatal
Do not ignore fatal error in AsmParser for inline assembly
2019-02-21 18:12:13 +01:00
Alex Beregszaszi
fcf884f201 Do not ignore fatal error in AsmParser for inline assembly 2019-02-21 16:18:53 +00:00
chriseth
6a1e339b9d
Merge pull request #6068 from ethereum/fix-no-color
Fix isoltest --no-color option
2019-02-21 17:08:10 +01:00
Erik Kundt
d40928f5fc Adds support for hex literals in soltest. 2019-02-21 17:04:40 +01:00
chriseth
98012135c6
Merge pull request #6060 from ethereum/soltest-formatting
[soltest] Create dedicated formatting
2019-02-21 16:43:50 +01:00
Mathias Baumann
7a40088d95 Fix isoltest --no-color option 2019-02-21 16:42:23 +01:00
Erik Kundt
d1ad431887 Moves soltest function call to separate class. 2019-02-21 16:39:31 +01:00
chriseth
15d275ed37
Merge pull request #6023 from ethereum/assignment-whitespace-op
Add extra token for assembly assignment
2019-02-21 14:43:29 +01:00
chriseth
52df027afe
Merge pull request #6063 from ethereum/stackCompressorBuiltin
Take builtin functions into account in the compilability checker.
2019-02-21 14:40:56 +01:00
Mathias Baumann
1672902abb Unify isoltest and soltest options code
Also provide a default value for ipc-path, which is the same one as aleth uses.
2019-02-21 14:04:39 +01:00
Mathias Baumann
f395d5bab4 Add extra token for assembly assignment
Adding an extra token for := prevents whitespace between : = being valid
2019-02-21 13:58:21 +01:00
Mathias Baumann
8b342cbe6a Use Boost::Program_Options in soltest 2019-02-21 13:30:09 +01:00
Mathias Baumann
f4110b295b Use env variable to get IPC path for isoltest 2019-02-21 13:27:24 +01:00
chriseth
27d936cf44
Merge pull request #5102 from ethereum/abiencoderv2-tests
Run all end-to-end tests with ABIEncoderV2
2019-02-21 13:11:06 +01:00
chriseth
947215a901 Take builtin functions into account in the compilability checker. 2019-02-21 12:13:42 +01:00
chriseth
8ace2c5b11 Special treatment for differences between ABI encoders. 2019-02-21 11:11:29 +00:00
Erik Kundt
6c7ad42e2d Shares langutil code with soltest. 2019-02-21 01:04:34 +01:00
Alex Beregszaszi
219406f45b Add CLI option to soltest to always use ABIEncoderV2 2019-02-20 16:55:19 +01:00
chriseth
b14d22d11e Tests for events with structs in libraries. 2019-02-20 14:35:02 +01:00
chriseth
0613c69c4a
Merge pull request #6043 from ethereum/asm-jump-invalidlabel
Proper error message for missing variables in inline assembly
2019-02-20 14:32:40 +01:00
chriseth
fcd82025de
Merge pull request #6046 from ethereum/smt_division_tests
[SMTChecker] Move tests that contain division to boost tests
2019-02-20 14:29:15 +01:00
Leonardo Alt
123d0857c5 [SMTChecker] Move tests that contain division to boost tests 2019-02-20 12:17:03 +01:00
Alex Beregszaszi
687522a2f5 Move inline assembly tests from nameAndTypeResolution to inlineAssembly 2019-02-20 11:00:02 +00:00
Alex Beregszaszi
52496ea719 Proper error message for missing variables in inline assembly 2019-02-20 10:36:55 +00:00
Mathias Baumann
a63f7ca9df Fix crash due to missing type info 2019-02-19 17:28:44 +01:00
chriseth
d9e4a10d5a
Merge pull request #6000 from ethereum/fixECRecoverABIV2
Fixed internal error related to ecrecover and ABIEncoderV2.
2019-02-19 14:36:08 +01:00
chriseth
874648b924
Merge pull request #5999 from ethereum/smt_lazy_overflow
[SMTChecker] Check for under/overflow in the end of the function
2019-02-19 14:28:55 +01:00
chriseth
05541e5adb Fixed internal error related to ecrecover and ABIEncoderV2. 2019-02-19 14:17:03 +01:00
chriseth
d5791fef41 Fix combination of delegatecall and ABIEncoderV2.
We can set the flag to false for bare delegatecall, because we always
send a memory string and never a storage reference.
2019-02-19 13:57:03 +01:00
chriseth
55c4131a03
Merge pull request #6030 from ethereum/fixABIEncoderV2Mapping
Allow cleanup for mappings (do nothing).
2019-02-19 13:56:21 +01:00
Leonardo Alt
34470f3549 [SMTChecker] Only check for overflow/underflow in the end of the function 2019-02-18 23:55:58 +01:00
Alex Beregszaszi
2949bd14dd
Merge pull request #6028 from ethereum/warn-about-unused-struct-array-expr
Detect custom type expressions that have no effect
2019-02-18 21:12:04 +00:00
Mathias Baumann
e3d4155fa8 Detect custom type expressions that have no effect 2019-02-18 18:59:31 +01:00
chriseth
c690f679cb Allow cleanup for mappings (do nothing). 2019-02-18 18:50:22 +01:00
chriseth
968ca88690
Merge pull request #5872 from ethereum/semantic-tests-split
Semantic test infrastructure
2019-02-18 18:13:55 +01:00
chriseth
1b6d87c5bd
Merge pull request #5979 from ethereum/fix-context-for-hint
Make sure "value" error hint is only displayed in the right context
2019-02-18 17:35:31 +01:00
chriseth
e88765f936
Merge pull request #6022 from ethereum/fixFunctionScoping
Properly detect name clashes with functions before their definition.
2019-02-18 16:47:21 +01:00
Mathias Baumann
ee9394b4aa Move 'warnUnused' tests to subfolder 2019-02-18 16:42:58 +01:00
Mathias Baumann
093b9ced97 Make sure "value" error hint is only displayed in the right context
Before, the hint would be shown for any "value" member, even a user-specified one.
2019-02-18 16:29:57 +01:00
chriseth
cb0ad2266c
Merge pull request #6008 from ethereum/smt_fix_abstract_assignment
[SMTChecker] Assert type is not function when assigning
2019-02-18 14:54:20 +01:00
chriseth
b4cd2d6a93 Properly detect name clashes with functions before their definition. 2019-02-18 14:51:05 +01:00
chriseth
db7b38e3c4
Merge pull request #5978 from ethereum/fix-broken-hint
Fix error msg hint for non-payable contracts
2019-02-18 11:49:07 +01:00
Erik Kundt
dacad629ef Adds semantic tests to test framework and isoltest. 2019-02-15 13:27:15 +01:00
Mathias Baumann
419a12db03 TypeChecker: Add test to increase coverage 2019-02-14 13:41:33 +01:00
Leonardo Alt
22cdfb18d4 [SMTChecker] Assert type is not function when assigning 2019-02-14 13:32:56 +01:00
Mathias Baumann
10a9960eb3 Fix error msg hint for non-payable contracts 2019-02-14 11:39:19 +01:00
chriseth
b1df990a0f
Merge pull request #5990 from ethereum/provideAccessToAssmeblyAST
Provide access to assembly ast
2019-02-13 17:38:22 +01:00
chriseth
c5879589af
Merge pull request #5998 from ethereum/codingStyleCheck
More coding style checks
2019-02-13 17:36:34 +01:00
chriseth
17817dc0ef
Merge pull request #5995 from ethereum/incr-type-checker-cov
Add tests to increase TypeChecker.cpp coverage
2019-02-13 17:06:58 +01:00
chriseth
1a823f0bf8 Fix tabs/spaces. 2019-02-13 17:05:48 +01:00
chriseth
17ea467e5b Fix style of "const". 2019-02-13 16:34:53 +01:00
Mathias Baumann
1e603c27ea Add tests to increase TypeChecker.cpp coverage 2019-02-13 16:31:26 +01:00
chriseth
3a3ed1c6b5 Fix assertion concerning jumps in strict assembly. 2019-02-13 15:57:14 +01:00
Mathias Baumann
6a6cc27b71 Rename & move tests of group typeChecking to subfolder 2019-02-13 15:52:31 +01:00
chriseth
a344381d5e Provide access to AssemblyStack's AST. 2019-02-13 14:19:56 +01:00
Erik Kundt
190634e1f9 Implements infrastructure for semantic tests. 2019-02-13 13:05:58 +01:00
chriseth
0bd049c849 Adapet uses of AssemblyStack. 2019-02-13 12:23:07 +01:00
chriseth
9ab72f0188
Merge pull request #5971 from ethereum/overloadedEvents
More tests for overloaded events.
2019-02-12 12:00:02 +01:00
Bhargava Shastry
7751fa740f Ensure we fail gracefully when user tries to optimize Yul code 2019-02-12 11:21:02 +01:00
chriseth
091bbdb459 More tests for overloaded events. 2019-02-12 10:54:58 +01:00
chriseth
0b392fff7e
Merge pull request #5968 from ethereum/calldataArrays
Disallow calldata arrays with dynamically encoded base types in TypeChecker.
2019-02-11 18:08:10 +01:00
Daniel Kirchner
9e32aa7510 Disallow calldata arrays with dynamically encoded base types in TypeChecker. 2019-02-11 17:13:12 +01:00
chriseth
91d224dfb6
Merge pull request #5966 from ethereum/AnsiColorized
Adapts tests/ to use AnsiColorized (the generalized/moved version of FormattedScope, which in turn is removed in this PR)
2019-02-11 16:41:14 +01:00
chriseth
92cb6cb793
Merge pull request #5936 from ethereum/calldataStructsV2
ABIEncoderV2: Implement calldata structs without dynamically encoded members.
2019-02-11 16:18:27 +01:00
chriseth
18c7ad08a0
Merge pull request #5925 from ethereum/stackCompressor
Stack compressor
2019-02-11 16:17:47 +01:00
Christian Parpart
53f9be8a23 Adapts tests/ to use AnsiColorized (the generalized/moved version of FormattedScope, which in turn is removed in this PR) 2019-02-11 16:00:24 +01:00
chriseth
83083d2208 Stack compressor. 2019-02-11 15:48:29 +01:00
chriseth
5a34743d88 Allow optimizer steps to run on FunctionDefinition and group suite. 2019-02-11 15:48:29 +01:00
chriseth
b34e104173 Make dialect a shared pointer. 2019-02-11 15:48:29 +01:00
Mathias Baumann
259d803387 Conditional Expression: Delay invalid type fatal error
Check the whole conditional first and then output errors for
both, the true and false expressions.
2019-02-11 15:47:19 +01:00
Mathias Baumann
08977af843 Rename & move test to move away from number prefix 2019-02-11 15:47:19 +01:00
Daniel Kirchner
0e4912a203 ABIEncoderV2: Implement calldata structs without dynamically encoded members. 2019-02-11 15:46:58 +01:00
chriseth
94607011dc
Merge pull request #5965 from ethereum/fixSolcjsTests
Use master branch from solc-js for tests
2019-02-11 15:46:09 +01:00
chriseth
b5a2c66771
Merge pull request #5957 from ethereum/function-param-fix
Ensure function parameter names always matches parameter types length
2019-02-11 15:45:28 +01:00
chriseth
d099d55c66 Use master branch from solc-js. 2019-02-11 15:29:58 +01:00
Mathias Baumann
66b24225fb Remove duplicate if-check 2019-02-11 14:56:57 +01:00
chriseth
49cd55d3a0
Merge pull request #5839 from ethereum/inplaceEncoding
Inplace and non-padded encoding for ABIEncoderV2.
2019-02-11 12:01:28 +01:00
Mathias Baumann
fe2429de9f Packed Encoding: Disallow types in v2 that aren't allowed in v1 2019-02-11 11:37:48 +01:00
chriseth
227addfcef Syntax tests. 2019-02-11 11:37:48 +01:00
chriseth
7684d886ae Semantic tests. 2019-02-11 11:37:47 +01:00
Mathias Baumann
feae01f042 Add tests to increase coverage of TypeChecker 2019-02-11 11:23:56 +01:00
Mathias Baumann
d41ffd1dcf Rename & move tests to get rid of old number prefix in name 2019-02-11 11:23:20 +01:00
Daniel Kirchner
9203363fe9
Merge pull request #5860 from ethereum/test-file-parser
Test file parser.
2019-02-07 19:02:13 +01:00
Mathias Baumann
ee28cb65a6 Add tests to increase coverage of TypeChecker 2019-02-06 20:45:30 +01:00
Erik Kundt
c9c4578023 Adds support for tuples in test file parser. 2019-02-06 17:25:40 +01:00
Erik Kundt
161b22bd13 Cleans up test file parser and its tests. 2019-02-06 17:22:40 +01:00
Erik Kundt
7fa167977b Adds multi-line support for test file parser. 2019-02-06 17:22:40 +01:00
Erik Kundt
f90c6f57bb Implements a test file parser. 2019-02-06 17:22:40 +01:00
chriseth
231cec56c6
Merge pull request #5926 from ethereum/inv-num-crash
Fix crash for too large struct array indicies
2019-02-06 14:11:25 +01:00
Mathias Baumann
9f431339ef Fix crash for too large struct array indicies 2019-02-06 11:50:25 +01:00
Alex Beregszaszi
532c55acbd Add better sanity check to test/Metadata 2019-02-05 23:13:21 +00:00
Alex Beregszaszi
43ccc75293 Remove duplicated code in test/Metadata 2019-02-05 23:13:17 +00:00
Alex Beregszaszi
26de5684a2 Move bytecodeSansMetadata(bytes) helper to test/Metadata 2019-02-05 23:13:01 +00:00
Alex Beregszaszi
be22032141 Clean up some includes in tests 2019-02-05 22:58:43 +00:00
Alex Beregszaszi
3cdcd06b66 Add last test case for callbacks in libsolc 2019-02-05 20:26:47 +00:00
chriseth
263eaaa516
Merge pull request #5937 from ethereum/libsolc-callback-test
Add test cases for libsolc with callbacks
2019-02-05 21:11:44 +01:00
chriseth
438e19aa0f
Merge pull request #5931 from ethereum/fix-mapping-storage-check
Fix check that mappings can only have storage location
2019-02-05 21:03:20 +01:00
Alex Beregszaszi
257dbf1f6a Add test cases for libsolc with callbacks 2019-02-05 19:34:56 +00:00
Alex Beregszaszi
e9a0d99218 Add optimiser test for triggering CopyMethod in ConstantOpimiser 2019-02-05 18:44:53 +00:00
Mathias Baumann
77f407d450 Fix check that mappings can only have storage location 2019-02-05 18:06:42 +01:00
chriseth
d7e2838702
Merge pull request #5904 from bshastry/ossfuzz-dict
Add fuzzer config files for oss-fuzz and a solidity fuzzing dictionary
2019-02-04 19:17:39 +01:00
chriseth
22c8d74a8a Store all stack errors before they are thrown. 2019-02-04 17:32:05 +01:00
chriseth
77baf6caf7 Compilability checker. 2019-02-04 17:32:05 +01:00
Bhargava Shastry
4cac45dc4a Add fuzzer config files for oss-fuzz and a solidity fuzzing dictionary.
Update ossfuzz README.md.
2019-02-04 15:58:41 +01:00
chriseth
bb46e91677
Merge pull request #5891 from ethereum/const-opt-assembly
Take only Assembly instance as an input to ConstantOptimiser
2019-01-31 18:54:12 +01:00
Alex Beregszaszi
ae1cd252b0 Take only Assembly instance as an input to ConstantOptimiser 2019-01-31 16:02:29 +00:00
Alex Beregszaszi
554511b68e Introduce solidity_free in libsolc 2019-01-31 15:53:55 +00:00
Alex Beregszaszi
b1cb949a4b Shutdown IPC socket gracefully in RPCSession 2019-01-31 13:16:35 +00:00
chriseth
ddab3f06a5
Merge pull request #5907 from ethereum/rpcsession-check-id
Check message identifier in RPCSession
2019-01-31 13:36:37 +01:00
Alex Beregszaszi
8e2de02fc2 Format RPCSession parsing error more nicely 2019-01-30 13:34:40 +00:00
Alex Beregszaszi
e1780e3ae8 Check message identifier in RPCSession 2019-01-30 12:57:25 +00:00
chriseth
35483422f3 Pad code to multiple of 32 bytes. 2019-01-30 11:31:28 +01:00
Alex Beregszaszi
1276f3c4f3 Clean up includes in the fuzzer 2019-01-29 16:14:51 +00:00
Alex Beregszaszi
0e2b43e141 Pass by reference in fuzzer 2019-01-29 16:14:48 +00:00
Alex Beregszaszi
c537321309 Add more debuggin in the fuzzer 2019-01-29 16:08:25 +00:00
chriseth
e8d918c4ee
Merge pull request #5887 from ethereum/fuzzer-optim
Fix fuzzer_common to keep assembly intact
2019-01-28 17:24:28 +01:00
Alex Beregszaszi
c19afd5ad3 Fix fuzzer_common to keep assembly intact 2019-01-28 16:18:49 +00:00
Alex Beregszaszi
9aafa32825 Disallow empty import statements 2019-01-28 13:52:15 +00:00
Alex Beregszaszi
2fc7928697
Merge pull request #5864 from ethereum/tuneOptOrder
Some optimizer tuning.
2019-01-28 13:50:09 +00:00
Alex Beregszaszi
06998bc8e1 Run constant optimiser on fresh inputs in the fuzzer 2019-01-28 10:40:33 +00:00
chriseth
12e2187661 Some tuning. 2019-01-24 23:06:01 +01:00
chriseth
2e7274b49d
Merge pull request #5837 from ethereum/fixCalldataEncodedSize
Fix reported packed encoded size.
2019-01-24 13:10:27 +01:00
chriseth
14b553897e Tests. 2019-01-23 11:13:24 +01:00
Bhargava Shastry
24b1de7df0 This PR refactors and shares oss-fuzz specific test harness code with the afl fuzzer harness. ChangeLog updated. 2019-01-23 11:06:25 +01:00
chriseth
ea292393a3
Merge pull request #5838 from maxsam4/useLiteralContent-patch
useLiteralContent data validation
2019-01-23 10:35:32 +01:00
Mudit Gupta
2f91781a80
useLiteralContent data validation
Squashed commit of the following:

commit bbceee6997c1b951eb6054f7d5b7560fe1773690
Author: Mudit Gupta <guptamudit@ymail.com>
Date:   Tue Jan 22 23:27:49 2019 +0530

    Removed extra check

commit 4f7c3cc58e94836b1dddcc5f2938da14adad6252
Author: Mudit Gupta <guptamudit@ymail.com>
Date:   Tue Jan 22 17:51:05 2019 +0530

    Updated test error message

commit 5da45f2a23840e7bb1978853e1c184faec65b3e0
Author: Mudit Gupta <guptamudit@ymail.com>
Date:   Tue Jan 22 17:46:09 2019 +0530

    Renamed test

commit e661418deac25f31c49091be3c80244f566fc14c
Author: Leonardo <leo@ethereum.org>
Date:   Tue Jan 22 17:41:56 2019 +0530

    Update libsolidity/interface/StandardCompiler.cpp

    Co-Authored-By: maxsam4 <guptamudit@ymail.com>

commit d289b4dc1956ab736aada613e810cf2e2d124d4d
Author: Mudit Gupta <guptamudit@ymail.com>
Date:   Tue Jan 22 17:29:40 2019 +0530

    changed style

commit 5a7cf08db3027d75081d2e698dd51b807bef5abb
Author: Mudit Gupta <guptamudit@ymail.com>
Date:   Tue Jan 22 17:20:37 2019 +0530

    Added test case for missing useLiteralContent

commit 6e866c46aa92d6a89f2b341bd717c3886946f3ff
Author: Mudit Gupta <guptamudit@ymail.com>
Date:   Tue Jan 22 17:09:30 2019 +0530

    input check for useLiteralContent
2019-01-23 10:22:27 +05:30
Alex Beregszaszi
028bc7d20a Only replace solc-js copies in directories present during externalTests 2019-01-22 17:03:24 +00:00
Alex Beregszaszi
a52de117ea Do not use fork of openzeppelin anymore 2019-01-22 16:38:17 +00:00
chriseth
faa66983ae Use v0.5.0 tag of solc-js repository for external tests. 2019-01-22 10:03:35 +01:00
Leonardo Alt
7f8ceaadab [SMTChecker] Clear state knowledge after external function calls 2019-01-21 12:58:40 +01:00
chriseth
f8e9aed839
Merge pull request #5717 from ethereum/smt_typecast
[SMTChecker] Support basic typecast without truncation
2019-01-21 12:35:07 +01:00
Daniel Kirchner
610ef9f199 Disallow calldata structs. 2019-01-21 10:30:57 +01:00
chriseth
2ec997e697
Merge pull request #5775 from ethereum/codeAccess
Provide access to code of contract types.
2019-01-18 00:16:06 +01:00
chriseth
0711873a2f
Merge pull request #5794 from ethereum/ssaReverser
[Yul] Add SSAReverser to optimiser.
2019-01-17 23:50:51 +01:00
Daniel Kirchner
29f66b2674 Stabilize SSAReverser. 2019-01-17 21:05:32 +01:00
Daniel Kirchner
fd16585724 Undo second SSA transformation and add more tests. 2019-01-17 20:37:43 +01:00
Daniel Kirchner
6de2d92f20 Add SSAReverser to the yul optimiser. 2019-01-17 20:37:43 +01:00
chriseth
2a0d4f358c Add test for content of creationCode and runtimeCode. 2019-01-17 20:36:48 +01:00
chriseth
fed56f33d5 Type is not reserved anymore. 2019-01-17 20:36:48 +01:00
chriseth
4669b06ab4 Warn if type(..).runtimeCode is used with assembly in the constructor. 2019-01-17 20:36:48 +01:00
chriseth
e6fee257e6 Code generation for access to contract code. 2019-01-17 20:36:48 +01:00
chriseth
2fcfb216b5 Syntax for meta type information. 2019-01-17 20:36:48 +01:00
chriseth
44237211d1 Tests. 2019-01-17 20:36:48 +01:00
Leonardo Alt
83e7233bb8 Change error message and add tests 2019-01-17 14:28:03 +01:00
Leonardo Alt
a10db051de [SMTChecker] Support basic typecast 2019-01-16 13:00:54 +01:00
Daniel Kirchner
81f24f24e6 Add equivalent function combiner as Yul optimizer step. 2019-01-15 17:21:03 +01:00
Daniel Kirchner
4c8f8e9491 Disallow mismatching types in switch cases and detect duplicates by value for number literals. 2019-01-15 16:32:21 +01:00
chriseth
950e193642
Merge pull request #5765 from ethereum/unreachableCode
Warn about unreachable code.
2019-01-10 11:31:54 +01:00
Daniel Kirchner
0dfd4a726e Warn about unreachable code. 2019-01-10 10:36:50 +01:00
chriseth
b7ef850955 Update tests. 2019-01-09 16:57:33 +01:00
chriseth
edda79eec5 Variables are free with regards to code size. 2019-01-09 16:57:33 +01:00
chriseth
9244b8ea5a More code for optimizer tuning. 2019-01-08 18:07:14 +01:00
chriseth
5b8b016fae Use the block flattener. 2019-01-08 16:02:14 +01:00
chriseth
884d51c1f2
Merge pull request #5759 from ethereum/anotherBigTest
Another ABI test case for the optimizer.
2019-01-08 16:01:41 +01:00
chriseth
2d19903d1a Another ABI test case for the optimizer. 2019-01-08 15:14:45 +01:00
chriseth
f5b24a38b8 Make function grouper idempotent. 2019-01-08 15:05:09 +01:00
chriseth
6414d63906
Merge pull request #5716 from ethereum/fixDataSizeOffset
Fix data size offset and properly provide builtins.
2019-01-08 00:07:42 +01:00
chriseth
40e1283d72
Merge pull request #5713 from ethereum/addAztek
[Yul] Add AZTEK code as test.
2019-01-07 17:25:41 +01:00
chriseth
ace601b8f6 Tests. 2019-01-07 17:23:38 +01:00
chriseth
5b73c2ae3b Take special functions that require literals into account. 2019-01-07 17:23:38 +01:00
chriseth
9f5d34af7d
Merge pull request #5752 from ethereum/addDialect
[Yul] Refactor: Make the dialect available everywhere.
2019-01-07 17:23:05 +01:00
chriseth
9222eff08f Make the dialect available everywhere. 2019-01-07 16:41:03 +01:00
chriseth
b604b87272 Add AZTEK code as test. 2019-01-07 16:23:35 +01:00
androlo
d2105be57d Move actual test files. 2019-01-07 15:05:54 +01:00
chriseth
6e626ad955 Unify json and non-json commandline tests. 2019-01-07 14:50:49 +01:00
androlo
b18c8a60ff Use directories for tests. 2019-01-07 14:50:49 +01:00
chriseth
633228f1a7
Merge pull request #5710 from ethereum/moveTests
[REF][cmdlinetests] Move functions to the top
2019-01-07 14:47:53 +01:00
chriseth
b06e84501b
Merge pull request #5711 from ethereum/printCommandOnError
[cmdline tests] Print command on error.
2019-01-07 14:37:32 +01:00
chriseth
ff7bc85478
Merge pull request #5741 from ethereum/fix-5730-SourceLocation
Fixes SourceLocation extraction on multiline locations with a too long first line
2019-01-07 14:37:07 +01:00
chriseth
2e9c70add0 Use rematerializer if variable is unreferenced or value is "cheap". 2019-01-07 14:03:32 +01:00
Christian Parpart
9e61dbad07
Adds new test for SourceReferenceExtractor to extract multiline location with a too long first line. 2019-01-07 11:56:43 +01:00
androlo
88c7975ca5 Move functions to the top. 2018-12-21 00:46:31 +01:00
chriseth
09feb9cf52 Print command. 2018-12-20 12:56:18 +01:00
androlo
4487567629 Only select directories to skip the README. 2018-12-20 12:19:14 +01:00
chriseth
8690898ac1 Formatting. 2018-12-20 12:19:14 +01:00
chriseth
ae08d7c375
Merge pull request #5681 from ethereum/limitOutput
Do not compile unless requested.
2018-12-19 17:02:28 +01:00
chriseth
4c7151e57f Do not include empty JSON objects in output. 2018-12-19 14:59:29 +01:00
chriseth
1bf396af78 Tests. 2018-12-19 12:58:17 +01:00
Christian Parpart
62fe57479e
make use of C++ = default constructor declarations as well as more non-static member initialization syntax. 2018-12-19 11:26:42 +01:00
Christian Parpart
d10bae245e
liblangutil: SourceLocation to default initialize data members (w/o the use of ctor)
See: http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#c45-dont-define-a-default-constructor-that-only-initializes-data-members-use-in-class-member-initializers-instead
2018-12-19 11:21:45 +01:00
chriseth
20189c3f3b
Merge pull request #5637 from ethereum/better-json-error-reporting
Json: Provide better error message when 'settings' is not an object
2018-12-18 19:39:46 +01:00
Mathias Baumann
c43d96f2bf Json: Provide better error messages for wrong types 2018-12-18 18:36:50 +01:00
Alex Beregszaszi
bd2f2ecbbd Move unsatisfied_version test from SolidityNameAndTypeResolution to SolidityParser 2018-12-18 15:02:59 +00:00
Alex Beregszaszi
ba15bc0a23 Fail if parsing failed in AnalysisFramework
Otherwise Compilerstack::analyze will throw an exception.
2018-12-18 15:02:37 +00:00
Alex Beregszaszi
c2ec6d71b4 Add version pragma parsing to Parser 2018-12-18 15:02:35 +00:00
Mathias Baumann
1b8570f829 Only generate sort/search code when interface functions exist 2018-12-17 21:24:37 +01:00
chriseth
332f914e4e
Merge pull request #5388 from ethereum/smt_mapping
[SMTChecker] Support for mapping
2018-12-17 14:09:52 +01:00
chriseth
bf7d71d6b3
Merge pull request #5613 from ethereum/yulStringLiterals
[Yul] Use C++ user-defined literals for creating YulString constants.
2018-12-17 14:07:24 +01:00
chriseth
2f11a677de Add gnosis safe as external test. 2018-12-14 23:48:04 +01:00
Leonardo Alt
9199718ec0 Clear all mapping knowledge after array variable assignment 2018-12-14 12:21:53 +01:00
Leonardo Alt
6a2809a582 [SMTChecker] Support to mapping 2018-12-14 12:21:53 +01:00
chriseth
bc22a25a60 Remove VarDeclPropagator. 2018-12-13 16:51:10 +01:00
chriseth
6c6a53a439 Do not create unassigned variables. 2018-12-13 16:51:10 +01:00
chriseth
11209ec48a Add variable declaration initializer. 2018-12-13 16:49:04 +01:00
chriseth
b11d413720 Consider return variables to be zero initially. 2018-12-13 16:02:30 +01:00
chriseth
1d274a8924
Merge pull request #5644 from ethereum/noInlineIntoLarge
[Yul] Do not inline into already big functions.
2018-12-13 15:57:49 +01:00
chriseth
ef95a1ab53
Merge pull request #5651 from ethereum/cmdlineJsonTests
Remove pre-release warning from standard json cmdline tests.
2018-12-13 15:28:40 +01:00
Daniel Kirchner
d5a50d8aee Remove pre-release warning from standard json cmdline tests. 2018-12-13 14:42:29 +01:00
chriseth
60a368244a Do not inline into already big functions. 2018-12-13 12:12:54 +01:00
chriseth
642c69f935
Merge pull request #5641 from ethereum/supportUnassigned
[Yul] Support unassigned variables in the SSA value tracker and the data flow analyzer.
2018-12-13 11:33:45 +01:00
chriseth
6e205cc4e3
Merge pull request #5624 from ethereum/standard_json_unknown_keys
Disallow unknown JSON keys in standard-json
2018-12-13 09:58:34 +01:00
Daniel Kirchner
5ac7620045 Use C++ user-defined literals for creating YulString constants. 2018-12-12 18:45:43 +01:00
chriseth
17bf164afe
Merge pull request #4951 from ethereum/alethUpdates
Use current aleth release for testing.
2018-12-12 18:41:35 +01:00
chriseth
9557dd7e74 Support unassigned variables in the SSA value tracker and the data flow analyzer. 2018-12-12 18:06:28 +01:00
Leonardo Alt
8cd2ac8462 Disallow unknown JSON keys in standard-json 2018-12-12 17:32:42 +01:00
Daniel Kirchner
123d33ad41 Add tolerance to gas meter tests. 2018-12-12 17:24:56 +01:00
chriseth
87237281bf
Merge pull request #5630 from ethereum/warn_functions_empty_body
Supress unused var and state mut warnings for functions with empty body
2018-12-12 17:00:50 +01:00
Leonardo Alt
508aae8a67 Disable state mutability warning for functions with empty body 2018-12-12 14:43:44 +01:00
Leonardo Alt
53537864a2 Disable unused var warning for functions with empty body 2018-12-12 14:43:44 +01:00
Daniel Kirchner
788612d2ef Refactoring of the ControlFlowGraph and use for detecting all uninitialized storage accesses. 2018-12-12 04:20:53 +01:00
chriseth
fb3a0ac1c7 Codegen for object access. 2018-12-11 19:24:44 +01:00
chriseth
9f86ede32d
Merge pull request #5454 from ethereum/smt_math_functions
[SMTChecker] Abstract math functions
2018-12-11 18:35:10 +01:00
chriseth
b5deca0383
Merge pull request #4779 from ethereum/optimise-string-literals
Decide better in storing string literals as data
2018-12-11 17:50:14 +01:00
Leonardo Alt
08737e43dc [SMTChecker] Use SymbolicFunctionVariable for uninterpreted functions 2018-12-11 11:28:25 +01:00
Daniel Kirchner
6d82ad1338 Test updates for recent versions of aleth. 2018-12-11 04:47:05 +01:00
chriseth
d80d324de7 Tests for gas costs. 2018-12-10 18:06:07 +01:00
Yi Huang
81f703427e Add tests for implcit conversions from literals to fixed-point numbers. 2018-12-10 17:31:20 +01:00
Mathias Baumann
55d7d327c4 Have only one source where testsuits are defined 2018-12-10 16:49:33 +01:00
chriseth
b05d33d771 Tests for stack reusing code generator. 2018-12-10 14:28:56 +01:00
Erik Kundt
e2395a3dcf Adds more detailed type errors and tests. 2018-12-07 12:35:35 +01:00
Erik Kundt
b2afb8cdda Adds an additional message to failing type conversions. 2018-12-07 11:55:53 +01:00
chriseth
6a9e8a6fe3
Merge pull request #4936 from ethereum/binSelect
Binary search for dispatch.
2018-12-07 00:55:09 +01:00
Daniel Kirchner
1eb60cbb39 Add structural simplifier as optimization step for Yul. 2018-12-06 18:37:35 +01:00
chriseth
b7cfa499b0 Add tests. 2018-12-06 14:43:14 +01:00
chriseth
0e8841005c
Merge pull request #5554 from ethereum/cp-SourceReferenceFormatter-refactor
[2/3] Refactor SourceReferenceFormatter (split-out data extraction & make use of new SourceLocation knowledge)
2018-12-06 14:01:39 +01:00
Christian Parpart
073b03d90c liblangutil: refactor SourceReferenceFormatter, splitting out retrieval and making use of new SourceLocation's CharStream knowledge 2018-12-06 14:01:01 +01:00
chriseth
6124176374 Gas tests for the binary search dispatch routine. 2018-12-06 13:07:14 +01:00
chriseth
d67b232343 Extend capabilities of the generic commandline test. 2018-12-06 12:38:24 +01:00
chriseth
5fde279d2a
Merge pull request #5514 from corollari/develop
Remove unary + from the type system
2018-12-06 10:27:09 +01:00
Albert
eee2f2b069 Update test 2018-12-06 01:54:04 +01:00
Albert
df08d79623 Fix #5470
Remove unary + from the type system
2018-12-06 01:54:04 +01:00
chriseth
bc6ddbdd09 Remove w parameter for toHex. 2018-12-05 22:51:49 +01:00
Kevin Kelley
fb6fd1b3c2 add a 'readable' format for large hex values 2018-12-05 22:15:02 +01:00
Mathias Baumann
f4e9c70ecc Tests for SSAValueTracker ignoring function call on rhs 2018-12-05 18:01:41 +01:00
chriseth
32c9da9419
Merge pull request #5593 from ethereum/issue-5384
Fix expression simplifier asserting on default values
2018-12-05 17:58:23 +01:00
chriseth
dd6327594f
Merge pull request #5592 from ethereum/fix-issue-5446
Relax assertion about jumps in loose mode
2018-12-05 11:43:31 +01:00
Mathias Baumann
5d31ad2daf Test for unhandled default values in expression simplifier 2018-12-05 11:43:02 +01:00
Mathias Baumann
6e5160efa0 Relax assertion about jumps in loose mode 2018-12-05 10:25:59 +01:00
chriseth
6efe2a5266
Merge pull request #5390 from ethereum/smt_one_loop
[SMTChecker] Unroll loops once
2018-12-05 09:23:19 +01:00
chriseth
852297fa2f Builtin functions for yul analysis. 2018-12-04 14:50:00 +01:00
chriseth
c3fc2da763 Tests for parser for builtins. 2018-12-04 14:49:16 +01:00
chriseth
961026347d Use dialect option in yul parser tests. 2018-12-04 14:49:16 +01:00
chriseth
8654f8f6d4
Merge pull request #5573 from ethereum/builtins
[Yul] Introduce the concept of builtin functions.
2018-12-04 14:11:49 +01:00
Daniel Kirchner
1b8a013d4a Properly recurse in ForLoopInitRewriter 2018-12-04 13:36:25 +01:00
Leonardo Alt
8069bb61da [SMTChecker] Loops are unrolled once 2018-12-04 12:35:19 +01:00
chriseth
99db4e3ff4 Introduce the concept of builtin functions. 2018-12-04 12:06:33 +01:00
chriseth
7698b0b63f Do not stop if there is more than one error. 2018-12-04 11:37:03 +01:00
chriseth
d829794737 Improve yul error messages around number of arguments and variables. 2018-12-04 11:37:03 +01:00
Anurag Dashputre
82f5763e7a Fix internal compiler error for unimplemented base contract function. 2018-12-03 12:25:31 +01:00
chriseth
4b98946e5a
Merge pull request #5341 from ethereum/optimizeAssemblyCommandline
Apply the optimize commandline parameter to assembly mode.
2018-12-03 11:52:48 +01:00
chriseth
3f613a44ec
Merge pull request #5557 from ethereum/fixInterfaceImplementedByPublicStateVariable
Public state variables are implementing external functions.
2018-12-03 10:46:44 +01:00
chriseth
0668a9ecfb Public state variables are implementing external functions. 2018-12-03 10:46:03 +01:00
chriseth
aaeb74f592
Merge pull request #5537 from ethereum/cp-SourceLocation-related-refactoring
[1/3] SourceLocation related refactoring.
2018-11-30 23:45:31 +01:00
Erik Kundt
1cdcdcee65 Improves assembly output commandline tests. 2018-11-30 23:39:05 +01:00
Erik Kundt
0d1b9c3b1b Adds tests for --optimize in assembly mode. 2018-11-30 23:39:05 +01:00
Christian Parpart
757623e381
liblangutil: SourceLocation: Retricts == and != operator 2018-11-30 17:34:54 +01:00
Christian Parpart
435f7b3b72 liblangutil: Scanner: remove superfluous sourceName field (it's in CharStream already)
Also, ParserBase::sourceName() was dead code. Eliminating it should
increase test coverage (how sneaky) :-)
2018-11-30 17:07:17 +01:00
Christian Parpart
c48a5264be
liblangutil: SourceLocation: adds (shared) pointer to underlying CharStream source, eliminating sourceName
Also, adapted affecting code to those changes.
2018-11-30 17:07:12 +01:00
chriseth
621ce3df20 Test. 2018-11-30 16:30:19 +01:00
chriseth
6aa9ce2d43
Merge pull request #5550 from ethereum/moveSomeTests
Move inline array tests.
2018-11-30 09:26:31 +01:00
chriseth
d6d41b2bc7
Merge pull request #5548 from ethereum/fixMemberAccess
Fix bug related to state variables of function type accessed via base contract.
2018-11-30 09:26:08 +01:00
chriseth
f46dd91c20 Move inline array tests. 2018-11-29 19:49:38 +01:00
chriseth
c445e7dfa4 Disallow inline arrays of mapping type. 2018-11-29 19:45:06 +01:00
chriseth
73a64da041 Fix bug related to state variables of function type accessed via base contract. 2018-11-29 19:30:27 +01:00
Leonardo Alt
67bbcefe6c Report deprecation error on functions sha3 and suicide also without call. 2018-11-29 14:29:13 +01:00
Christian Parpart
22eff22492 liblangutil: extends CharStream to know about the respective (file-)name (and adapt codebase to it) 2018-11-29 12:45:27 +01:00
Leonardo Alt
1d47919c0c Fix ICE when function type struct parameter has field of non-existent type 2018-11-29 10:38:47 +01:00
chriseth
b4086ac870
Merge pull request #5526 from ethereum/fixGetterNewCoder
Fix: Disallow structs in getters for old encoder.
2018-11-28 17:05:52 +01:00
Leonardo Alt
c51e6a545a Remove boost test checks from SMTCheckerJSONTest 2018-11-28 14:16:43 +01:00
chriseth
c54814b47b Tests. 2018-11-28 14:11:51 +01:00
chriseth
105898b81b Tests. 2018-11-27 15:59:57 +01:00
chriseth
728119bb11 Use yul parser in assembly stack. 2018-11-27 15:59:57 +01:00
chriseth
240ad0e34e
Merge pull request #5382 from ethereum/libraryMappingPublic
Allow mapping arguments for public and external library functions.
2018-11-26 19:47:32 +01:00
chriseth
1e7a23a205 Changelog entry and tests. 2018-11-26 16:51:45 +01:00
Daniel Kirchner
30e6f8d3fb Allow mapping arguments for public and external library functions. 2018-11-26 16:31:46 +01:00
Daniel Kirchner
597174119a Tests. 2018-11-26 14:30:32 +01:00
chriseth
7921e5f0b9
Merge pull request #5486 from ethereum/allowExternalPublicOverride
Allow external public override
2018-11-26 14:26:55 +01:00
chriseth
9ac7c748f8
Merge pull request #5494 from ethereum/scanner-error-handling
Improved Scanner error diagnostics.
2018-11-26 14:17:08 +01:00
chriseth
0b474d5299
Merge pull request #5497 from ethereum/langutil-SourceReferenceFormatter
Moving SourceReferenceFormatter into langutil namespace.
2018-11-26 12:44:25 +01:00
chriseth
ac5803bf3e Changelog entry and tests. 2018-11-26 12:41:26 +01:00
Lazaridis
56d5dd4668 decouple TestCase class from test/libsolidity 2018-11-25 02:34:59 +02:00
Christian Parpart
0ad56bca79 Adapting tests to Scanner's lexical error diagnostics change. 2018-11-24 12:59:37 +01:00
Christian Parpart
aeb66905de
Moving SourceReferenceFormatter into langutil namespace. 2018-11-24 12:33:36 +01:00
Lazaridis
e454737a3c adapt to latest code changes 2018-11-23 17:27:52 +01:00
chriseth
9a94e503da
Merge pull request #5491 from ethereum/libyul-as-library
Libyul as static library (version 3 ;( )
2018-11-23 17:01:18 +01:00
Christian Parpart
ec47c8946b
Isolating libyul library API into its own namespace yul. 2018-11-23 14:29:00 +01:00
Christian Parpart
3734f40d31 CMake: Isolate libyul into its own static library 2018-11-23 12:37:37 +01:00
Christian Parpart
713d94476e Reorder some include files and group <libyul/>'s together (as much as possible) 2018-11-23 12:37:19 +01:00
Leonardo Alt
0ff4cbe51b Add SMTChecker tests for standard JSON 2018-11-23 10:51:06 +00:00
Christian Parpart
0f4ed52a71
Rewrite header paths to adapt to recent git mv of libsolidity/inlineasm to libyul 2018-11-23 11:18:57 +01:00
chriseth
ecd059cb92
Merge pull request #5451 from ethereum/bound_function_tests
Add assert and tests for bound functions
2018-11-22 18:23:46 +01:00
Leonardo Alt
06189ae57f Add assert and tests for bound functions 2018-11-22 14:41:39 +01:00
Leonardo Alt
32fe4768a9 Organize smt tests in subdirectories 2018-11-22 13:33:28 +00:00
Leonardo Alt
4a71080ae5 Remove pragma ABIEncoderV2 from smt test 2018-11-22 13:33:28 +00:00
Alex Beregszaszi
109cfcef69 Drop numbering in front of the SMTChecker tests 2018-11-22 13:33:28 +00:00
Alex Beregszaszi
636da48e82 Move most of SMTChecker tests from C++ to isoltest
But keep divison in C++ because results differ between different solvers
2018-11-22 13:33:24 +00:00
chriseth
b5acc63008
Merge pull request #5427 from ethereum/liblangutil
Factor out langutil, a new static library that is shared between libyul/libsolidity
2018-11-22 00:31:01 +01:00
Alex Beregszaszi
7a26ede827 Fix constructor in AuctionRegistrar 2018-11-21 19:21:14 +00:00
Christian Parpart
d67322a186 Introduce namespace langutil in liblangutil directory.
Also:
- Use {}-style list initialisation for SourceLocation construction
- Introduce new system includes
- Changes the API of the Scanner to take source as value (with move) as opposed to as a reference
2018-11-21 19:13:44 +00:00
Christian Parpart
87821c53c3 Isolating files shared between Yul- and Solidity language frontend. 2018-11-21 18:58:12 +00:00
Alex Beregszaszi
7c051f1e32 LLL: implement WITH keyword 2018-11-21 15:50:45 +00:00
Alex Beregszaszi
c9ee30294c
Merge pull request #5444 from Mordax/issue-5168-rmvirtual
Removing redundant virtual from override function declaration
2018-11-21 15:16:08 +00:00
chriseth
8e98885c53
Merge pull request #5355 from ethereum/yul-forloop-pre-rewrite
[Yul] Implements a pass to rewrite for-loop's pre block into the parent's Block
2018-11-21 16:10:52 +01:00
mordax
ea8b7d803e Removing redundant virtual from override function declaration
Remove trailing whitespace

Remove changelog change
2018-11-21 14:37:32 +00:00
Leonardo Alt
06c3f0953a [SMTChecker] Support bound function calls 2018-11-19 15:29:00 +01:00
Christian Parpart
f705a45d43
[Yul] Implements a pass to rewrite for-loop's pre block into the parent's Block. 2018-11-16 13:15:41 +01:00
Leonardo Alt
70bb0eaf95 [SMTChecker] Implement uninterpreted functions and use it for blockhash() 2018-11-15 09:12:42 +01:00
chriseth
727e3f24bc Do not perform cleanup on unsigned integers when loading from calldata. 2018-11-14 20:52:30 +00:00
chriseth
17e81c6eca
Merge pull request #5410 from ethereum/lll-build
Do not build LLL unless requested via the LLL cmake option
2018-11-14 11:11:41 +01:00
Alex Beregszaszi
00cb5dbd43 Move LLL tests into a single directory 2018-11-13 23:51:17 +00:00
Alex Beregszaszi
6961899cb2 Do not build tests for LLL if disabled 2018-11-13 23:51:17 +00:00
chriseth
80fcd1aeb6 Fix commandline tests. 2018-11-14 00:41:34 +01:00
chriseth
28d98d61ef Use latest solcjs and replace compileStandard by compile. 2018-11-13 13:54:01 +00:00
Alex Beregszaszi
b6c3257752 Remove old libsolc API (compileJSON, compileJSONMulti, compileJSONCallback) 2018-11-13 13:54:01 +00:00
Alex Beregszaszi
90e4d24407 LLL: ensure assembly tests have the correct arguments 2018-11-13 13:47:29 +01:00
Alex Beregszaszi
a4d2e17a04 LLL: add test which has a sub assembly without a forced STOP 2018-11-13 13:47:29 +01:00
Alex Beregszaszi
d2e65a3ac4 LLL bytecode is padded by STOP in tests 2018-11-13 13:47:29 +01:00
Alex Beregszaszi
280255e64d LLL: do not wrap opcode tests into sequence 2018-11-13 13:47:29 +01:00
chriseth
2e025cf917 Update tests. 2018-11-13 13:33:33 +01:00
chriseth
7e0041cf22
Merge pull request #5406 from ethereum/uninitializedStorageUnimplemented
Ignore unimplemented functions for detecting uninitialized storage returns.
2018-11-13 13:22:59 +01:00
Daniel Kirchner
b5e9d849ef Ignore unimplemented functions for storage returns. 2018-11-13 12:18:22 +01:00
chriseth
9c6048b0b8
Merge pull request #5333 from ethereum/joinPerformance
[Yul] Use map join algorithm for performance.
2018-11-13 12:15:11 +01:00
Daniel Kirchner
74557ceb0e Deterministic YulStringRepository using string hashes. 2018-11-12 23:43:16 +01:00
chriseth
b1454433b2 Remove variables that go out of scope from data structure. 2018-11-12 23:00:37 +01:00
chriseth
faa7b61d76 Use map join algorithm for performance. 2018-11-12 23:00:37 +01:00
chriseth
af65bac737 Remove trailing whitespace. 2018-11-12 09:15:22 +01:00
Kristofer Peterson
f927da9182 Refactor of bool TypeChecker::visit(FunctionCall const& _functionCall).
Visit method now cleanly determines if node represents a function call,
struct construction or type conversion. Type checking, validation and
error message logic is moved to separate methods.
2018-11-09 16:35:54 +00:00
chriseth
9709dfe046
Merge pull request #5128 from ethereum/breakUnbreak
[Yul] Test case that shows that break / unbreak are more or less inverse
2018-11-09 16:07:20 +01:00
chriseth
0f2ba3522f Reset yul string repository. 2018-11-09 15:40:36 +01:00
chriseth
6bbedab383
Merge pull request #5265 from ethereum/cleanupsha3
Simplify sha3.
2018-11-09 15:39:57 +01:00
chriseth
5ea514213a Test case that shows that break/unbreak are more or less inverse. 2018-11-09 15:36:52 +01:00
chriseth
fa44d20721 Remove side-effect-free statements. 2018-11-08 18:14:36 +01:00
chriseth
cd11f7cfac
Merge pull request #5325 from ethereum/fixDataFlow
[Yul] Fix data flow analyzer for function definitions.
2018-11-08 12:52:51 +01:00
chriseth
b801e61611
Merge pull request #5365 from ethereum/improveNameDispenser
[Yul] Use single counter for name dispenser for performance reasons.
2018-11-08 12:24:21 +01:00
chriseth
bf5b36a1ed
Merge pull request #5366 from ethereum/addVarDecl
[Yul] Add VarDeclPropagator to full suite and interactive optimizer.
2018-11-08 12:21:45 +01:00
chriseth
84e8a782d6
Merge pull request #5351 from ethereum/functionTypeConversion
Relax type equality requirement of function types during conversion in code generation.
2018-11-08 11:29:55 +01:00
chriseth
cc2de07bc6
Merge pull request #5348 from ethereum/boostRationalNegativeDenominatorFix
Fix negative denominator in ``boost::rational`` during exponentiation.
2018-11-08 11:25:30 +01:00
Daniel Kirchner
b16a3644fe Function type conversion test cases. 2018-11-08 10:51:51 +01:00
chriseth
37766ee8e4 Add VarDeclPropagator to full suite and interactive optimizer. 2018-11-07 23:19:42 +01:00
chriseth
845899e305 Use single counter for name dispenser for performance reasons. 2018-11-07 23:09:33 +01:00
chriseth
b2b11eaa00 Fix data flow analyzer for function definitions. 2018-11-07 20:32:55 +01:00
chriseth
bed0368ffa
Merge pull request #5327 from ethereum/rematerializerSmall
Add rematerializer to interactive optimizer.
2018-11-07 20:30:31 +01:00
chriseth
674e17c2a8 Performance: Replace string by special single-copy YulString class. 2018-11-07 19:30:27 +01:00
Christian Parpart
ab0de38f16
Eliminate byte-typedef and use uint8_t in all their places instead.
This change is made to (easily) be forward compatible with future C++
standards, in order to allow compiling the code with newer standards at
some point in the future.

* Removed the `using byte = uint8_t;` line from Common.h
* Mechanically change all uses of `byte` to `uint8_t`.

Tested with GCC 7.3 in C++11/14/17 modes :-)
2018-11-07 12:17:57 +01:00
Daniel Kirchner
e036133d1b Fix negative denominator in `boost::rational` during exponentiation. 2018-11-06 10:52:10 +01:00
Daniel Kirchner
36903d7e27 Remove uses of boost::rational with negative denominator, which breaks with boost 1.68. 2018-11-05 21:36:52 +01:00
Erik Kundt
1d8e9af407 Fixes crash while encoding too large arrays. 2018-10-30 15:14:57 +01:00
chriseth
0e9127a7c8 Add rematerializer to interactive optimizer. 2018-10-28 13:27:21 +01:00
Christian Parpart
f08ab77249
Yul: Implements empty-var-decl-propagation 2018-10-26 13:13:57 +02:00
chriseth
3473326fc4
Merge pull request #5273 from ethereum/interactiveOpt
[Yul] Interactive optimizer tool
2018-10-25 13:55:08 +02:00
chriseth
c36a3bd683
Merge pull request #5283 from ethereum/smt_fixed_bytes
[SMTChecker] Support FixedBytes
2018-10-25 13:01:01 +02:00
chriseth
f714b0dd7c
Merge pull request #5242 from ethereum/someChecks
Some well-formedness checks for the Yul AST.
2018-10-25 12:44:28 +02:00
chriseth
4076875927
Merge pull request #5271 from ethereum/fullSuite
[Yul] Full suite tests.
2018-10-25 12:44:10 +02:00
chriseth
d335539891
Merge pull request #5296 from ethereum/setPragmaToArbitrary
Set pragma to arbitrary
2018-10-25 12:42:15 +02:00
Leonardo Alt
d8cbf321da Grouping of symbolic variables in the same file and support to FixedBytes 2018-10-25 09:30:48 +02:00
chriseth
60f1d52f59 Full suite tests. 2018-10-24 18:02:08 +02:00
chriseth
f92623063d Add redundant assign and ssa. 2018-10-24 17:54:35 +02:00
chriseth
57843f790c Interactive optimizer tool. 2018-10-24 17:52:28 +02:00
chriseth
1424beda79 Remove pragma changer. 2018-10-24 14:52:55 +02:00
chriseth
9e6356a763 Set pragma to arbitrary. 2018-10-24 14:52:55 +02:00
chriseth
eded236e67 Only run zeppelin as external tests. 2018-10-24 14:52:55 +02:00
chriseth
01566c2e1a
Merge pull request #5272 from ethereum/smt_special_vars
[SMTChecker] Support msg.*, tx.*, block.*, gasleft and blockhash
2018-10-24 14:34:17 +02:00
chriseth
a9a414bd0f Added some tests. 2018-10-24 14:29:33 +02:00
chriseth
b3911798b3 Redundant assign eliminator. 2018-10-24 13:24:25 +02:00
Leonardo Alt
e2cf5f6ed9 Add gasleft constraint and use full member access name 2018-10-22 18:19:11 +02:00
Christian Parpart
f112377dd4
Refactor solidity::Token into an enum class with TokenTraits helper namespace 2018-10-22 17:00:51 +02:00
Leonardo Alt
b46b827c30 [SMTChecker] Support msg.*, tx.*, block.*, gasleft and blockhash 2018-10-19 15:52:16 +02:00
chriseth
c13b5280c1
Merge pull request #5256 from ethereum/lvalueCleanup
Lvalue cleanup
2018-10-19 11:20:12 +02:00
chriseth
c676b009e1
Merge pull request #5267 from ethereum/ssatransform
SSA transform - first step.
2018-10-19 11:10:08 +02:00
chriseth
5c274a9251
Merge pull request #5260 from ethereum/flattenMore
Flatten more.
2018-10-19 11:08:46 +02:00
chriseth
0ebe572f7d
Merge pull request #5258 from ethereum/coverage2
Add some simplification tests for operations.
2018-10-19 11:04:56 +02:00
chriseth
4987c12ac3
Merge pull request #5213 from Mordax/issue-5103
Tests for flipping signs on signed type edge case
2018-10-18 19:02:35 +02:00
chriseth
7dffb0f3ee
Merge pull request #5270 from ethereum/inlineFlexible
Make full inliner more flexible.
2018-10-18 19:02:04 +02:00
chriseth
465845b7a7 SSA transform - first step. 2018-10-18 18:56:22 +02:00
chriseth
b2725aa913 Make full inliner more flexible. 2018-10-18 14:57:09 +02:00
chriseth
48749146da Fix a bug in CSE where a variable that was already out of scope was used. 2018-10-18 14:55:51 +02:00
chriseth
c34fa43d5b Test case that shows a CSE bug related to scopes. 2018-10-18 14:54:23 +02:00
chriseth
e78b95d9d4 Renamed SHA3.{h,cpp} files. 2018-10-18 14:31:36 +02:00
chriseth
e8a2d57075 Flatten more. 2018-10-18 00:58:15 +02:00
chriseth
bda154440c Add some simplification tests for operations. 2018-10-18 00:10:39 +02:00
chriseth
7609e2871e
Merge pull request #5240 from ethereum/limitDispenserSize
[Yul] Limit name length created by dispenser
2018-10-17 22:54:38 +02:00
chriseth
56425bb2b1 Add a test for delete x.length 2018-10-17 22:07:05 +02:00
chriseth
c6a6e9ac5d
Merge pull request #5232 from ethereum/inlineHeuristic
[Yul] Add simple inlining heuristic
2018-10-17 17:22:46 +02:00
chriseth
732d09cef1 Limit size of generated names and add convenience constructors. 2018-10-17 17:21:55 +02:00
chriseth
16c2a775fd Handle externally supplied variables correctly in disambiguator. 2018-10-17 14:12:11 +02:00
chriseth
9fb5feed05 Use metrics in the full inliner. 2018-10-17 14:11:20 +02:00
chriseth
2ab6430303 Inline each function separately. 2018-10-16 17:32:21 +02:00
chriseth
a435a14e13 Test for crash via inlining. 2018-10-16 17:29:20 +02:00
chriseth
e2e4a9fe81 New full inliner. 2018-10-16 17:16:03 +02:00
chriseth
ffe44536fe Add a "full simplify" test that applies multiple elementary transforms. 2018-10-16 16:18:39 +02:00
chriseth
a320eec7d3 New simplifier via broken expressions. 2018-10-16 16:18:39 +02:00
chriseth
b723893ac7
Merge pull request #5225 from mestorlx/issue5007
Prevent crash in case there are no contracts
2018-10-16 14:25:58 +02:00
mordax
134f5cb798 Added test for flipping signs on signed type edge case 2018-10-15 16:08:43 -04:00
chriseth
036929aba1
Merge pull request #5226 from ethereum/chriseth-patch-3
Correct include path
2018-10-15 19:51:25 +02:00
chriseth
8677d9276a
Merge pull request #5222 from ethereum/yul-block-flattener
[WIP] Yul: Introduces a block flattening pass
2018-10-15 19:50:10 +02:00
mestorlx
9f9d6fdcc4 fix issue##5007 2018-10-15 14:26:15 -03:00
Christian Parpart
04612936c2
Yul: Introduces a block flattening pass + tests 2018-10-15 18:21:34 +02:00
chriseth
3d4e5f30e1
Correct include path 2018-10-15 18:08:41 +02:00
Bhargava Shastry
55d91d5f9c Bug fix: Add missing include in test/Options.h; otherwise compiler does not recognise the boost object that Options subclasses 2018-10-15 17:14:22 +02:00
Leonardo Alt
e4851cf59e [SMTChecker] Inline calls to internal functions 2018-10-15 15:11:21 +02:00
chriseth
6202628cfe
Merge pull request #5221 from ethereum/splitRenamingLeftovers
Some renaming leftovers.
2018-10-15 14:22:17 +02:00
chriseth
0778fb2dfc
Merge pull request #5208 from mestorlx/bug4156
[WIP] Bad identifier suggestion in certain cases
2018-10-15 13:03:49 +02:00
chriseth
0664772ece Some renaming leftovers. 2018-10-15 12:51:50 +02:00
Christian Parpart
1304361b9c
Renaming namespace dev::julia to dev::yul. 2018-10-15 11:58:51 +02:00
Christian Parpart
9a4bec7e47
Renaming libjulia to libyul 2018-10-15 11:52:35 +02:00
chriseth
656adcaeb7
Merge pull request #5149 from ethereum/fix_assertion_on_inval_tuple_call
Fixes invalid function calls to literals inside tuple assignment's LHS.
2018-10-15 11:24:47 +02:00
Christian Parpart
6d815a142f
Fixes invalid function calls to literals inside tuple assignment's LHS. 2018-10-15 10:35:11 +02:00
mestorlx
1ce9566e50 Updated MAXIMUM_STRING_DISTANCE to non static maximumStringDistance taking into account length of the identifier 2018-10-13 09:54:07 -03:00
chriseth
7940dafd0d Also substitute variables in CSE. 2018-10-12 17:11:13 +02:00
chriseth
26dc876c28
Merge pull request #5127 from ethereum/exprUnbreaker
[Yul] Expression joiner.
2018-10-12 17:10:44 +02:00
chriseth
93cf718367
Merge pull request #5206 from ethereum/splitConstantsToo
[Yul] Split constants too
2018-10-12 17:01:54 +02:00
chriseth
94526b2d92
Merge pull request #5145 from ethereum/hashLinker
Hash linker
2018-10-12 15:53:45 +02:00
chriseth
1e06422589 Also split constants. 2018-10-12 15:20:06 +02:00
chriseth
d60a2511fd Expression joiner. 2018-10-12 15:19:29 +02:00
chriseth
26c693aa92 Change library placeholder to __$<hash>$__. 2018-10-12 15:15:02 +02:00
chriseth
6daeb39ecc Use hash for library placeholders. 2018-10-12 15:15:01 +02:00
chriseth
a937a449df Move unused pruner tests. 2018-10-11 18:41:26 +02:00
chriseth
463642996a Move expression simplifier tests. 2018-10-11 18:41:26 +02:00
chriseth
6dfd0adc0b Move rematerialiser tests. 2018-10-11 18:41:26 +02:00
chriseth
49958e4720 Move main function tests. 2018-10-11 18:41:26 +02:00
chriseth
9cd577abe9 Move tests for full inliner. 2018-10-11 18:41:26 +02:00
chriseth
83ab8e7f78 Move expression inliner tests. 2018-10-11 18:41:26 +02:00
chriseth
7a34fc1291 Move function hoister tests. 2018-10-11 18:41:26 +02:00
chriseth
e021be4609 Move function grouper tests. 2018-10-11 18:41:26 +02:00
chriseth
424a77b48e Move expression splitter tests. 2018-10-11 18:41:26 +02:00
chriseth
33ac415f7f Move common subexpression eliminator tests. 2018-10-11 18:41:26 +02:00
chriseth
a53d942da5 Remove old disambiguator test. 2018-10-11 16:59:57 +02:00
chriseth
6e32a1becb Disambiguator tests. 2018-10-11 16:59:57 +02:00
chriseth
4607118d2e Add Yul optimizer test framework. 2018-10-11 16:59:57 +02:00
chriseth
9da62384ee Combine test path discovery. 2018-10-11 15:01:43 +02:00
chriseth
50247dc8d1 Extract test suite runs. 2018-10-11 15:01:43 +02:00
chriseth
9081f803c7 Extract function. 2018-10-11 15:01:43 +02:00
Erik Kundt
3e24a3d81b Adds syntax tests for array index access. 2018-10-10 23:18:32 +02:00
chriseth
2feaacba9d
Merge pull request #5195 from ethereum/unsigned-array-index
Do not crash on non-unsigned array index
2018-10-10 20:56:25 +02:00
Erik Kundt
763ae30023 Fixes crash on non-unsigned array index. 2018-10-10 19:49:25 +02:00
Martin Diz
ef25454a04 Improved error message for lookup in function types. 2018-10-10 11:53:53 -03:00
chriseth
dd4acda73a
Merge pull request #5186 from ethereum/renameBreaker
Rename ExpressionBreaker to ExpressionSplitter.
2018-10-10 16:36:55 +02:00
chriseth
f950973eb2 Rename ExpressionBreaker to ExpressionSplitter. 2018-10-10 16:23:35 +02:00
chriseth
5b5a4d0172
Merge pull request #5134 from ethereum/fuzzer-input-file
solfuzzer: adds --input-file=FILENAME command line argument (defaulting to stdin)
2018-10-10 16:00:58 +02:00
chriseth
4035c96a32
Merge pull request #5184 from ethereum/viewFunctionDocs
Library view functions
2018-10-10 15:21:40 +02:00
Erik Kundt
4beabf6686 Documents library view functions and adds unit test. 2018-10-10 12:28:24 +02:00
chriseth
06200b4b64
Merge pull request #5180 from ethereum/cpp-cleanup
Some C++ cleanup
2018-10-10 11:43:42 +02:00
Christian Parpart
212a6e146a adds --input-file=FILENAME to solfuzzer 2018-10-10 11:13:03 +02:00
Alex Beregszaszi
6c3d12d85b Do not require ctype/stdio if not needed 2018-10-09 19:06:22 +01:00
Alex Beregszaszi
9e032bff43 Use nullptr instead of NULL where appropriate 2018-10-09 18:06:39 +01:00
chriseth
f6f0cecc2f
Merge pull request #5076 from ethereum/exprBreaker
[Yul] Expression breaker.
2018-10-09 16:50:00 +02:00
chriseth
4d9184ef04 Expression breaker. 2018-10-09 15:48:27 +02:00
Christian Parpart
4d5216c2e0 Fixes large rational number literals being wrongly interpreted.
Fixes #5052.
2018-10-09 14:36:49 +02:00
chriseth
547b26d464
Merge pull request #5124 from lazaridiscom/1802-hex-error-reporting
use Token type for hex error, draft re #1802
2018-10-09 14:17:11 +02:00
chriseth
7a6e23998a Fix commandline tests for release version. 2018-10-09 13:48:25 +02:00
Lazaridis
4bcd89105c provide general hex-literal error message, fixes #1802
dummy
2018-10-09 06:51:19 +03:00
chriseth
2fcbe74db0 Fix ast json test for function kind. 2018-10-08 23:07:10 +02:00
chriseth
7ff9a27979
Merge pull request #4734 from ethereum/astUpdate
JSON AST: replace ``isConstructor`` by ``kind`` which also supports fallbacks
2018-10-08 21:47:27 +02:00
Christian Parpart
d1e05bf647
soltest: provides sane defaults for --testpath command line option 2018-10-08 10:58:52 +02:00
chriseth
d76bfcd935 Fix typos. 2018-10-04 13:28:16 +02:00
Christian Parpart
9fb835b710 Fixes #5051 (introduced in #4684), effectively allowing underscores in address literals. 2018-10-02 15:37:15 +02:00
chriseth
e9f72212ee
Merge pull request #5104 from ethereum/fuzzer
Do not use compileJSON wrapper in the fuzzer
2018-10-01 13:20:06 +02:00
chriseth
658bef5a38
Merge pull request #5115 from mestorlx/cleancircleci
removed stray (B in CI test output
2018-10-01 13:18:55 +02:00
chriseth
a17d480fc2
Merge pull request #5075 from ethereum/fixInliner
[Yul] Fix inliner
2018-10-01 13:10:54 +02:00
chriseth
d5cd02b8ed Fix for inlining inside conditions. 2018-10-01 13:10:10 +02:00
Alex Beregszaszi
24563dd3ce Do not use compileJSON wrapper in the fuzzer 2018-09-29 14:58:59 +01:00
Martin Diz
25f3565340 removed stray (B in CI test output 2018-09-28 19:27:55 -03:00
Alex Beregszaszi
c4b5101b9d
Merge pull request #4676 from jwasinger/extcodehash
Add support for EXTCODEHASH
2018-09-28 00:04:40 +01:00
Alex Beregszaszi
384a65f660 Be more strict about values in the optimizer block in StandardJSON 2018-09-26 16:51:08 +01:00
Alex Beregszaszi
f2fa513320 Add LLL tests for EXTCODEHASH 2018-09-26 16:11:02 +01:00
Alex Beregszaszi
5d985abcab Add test for extcodehash 2018-09-26 16:11:02 +01:00
chriseth
13cd7c3fed
Merge pull request #5061 from ethereum/fixedSizeArrayLength
Disallow fixed-size arrays with zero length
2018-09-26 14:55:07 +02:00
Alex Beregszaszi
8cfc6c98d6 CREATE2 is part of Constantinople now
Also add hasCreate2 to EVMVersion
2018-09-26 01:58:10 +01:00
Alex Beregszaszi
c9f468b717 Better regex for finding version pragmas and replace it with >=0.0
There is a bug which stops ^0 from working.
2018-09-25 19:03:24 +01:00
Alex Beregszaszi
321ab08102 Automatically replace version pragmas in compilation tests 2018-09-25 19:03:24 +01:00
Alex Beregszaszi
d05fdb51b0 Require 0.5.0 in contract tests 2018-09-25 19:03:24 +01:00
Alex Beregszaszi
e9b2c650ce Turn on patch to replace version pragmas for Zeppelin
An also replace every single one of them with ^0
2018-09-25 19:03:24 +01:00
chriseth
ba62831143 Tests for inlining inside condition. 2018-09-25 17:16:22 +02:00
chriseth
1b8334e58b
Merge pull request #5034 from liangdzou/fix_test_format_issue
fix format issue for test files to enable the format checker in PR #5027
2018-09-25 10:14:44 +02:00
liangdzou
839b01f77e fix format issue for test files 2018-09-24 21:12:24 +08:00
chriseth
cb3a837251
Merge pull request #5003 from herrBez/cleanUpdated
Add syntax tests to fix #4627
2018-09-24 14:43:53 +02:00
Erik Kundt
d821cbdff5 Moves length check to reference resolver. 2018-09-22 00:25:52 +02:00
Erik Kundt
ff5be17990 Disallows fixed-size multidim. arrays with zero-length. 2018-09-21 18:44:56 +02:00
Alex Beregszaszi
5dd3ee2d96
Merge pull request #5050 from ethereum/standard-json-crashes
Add proper error reporting when invalid settings are provided in StandardJSON
2018-09-21 15:48:05 +01:00
Alex Beregszaszi
a515173900 Add proper error reporting when invalid settings are provided in StandardJSON 2018-09-21 14:53:24 +01:00
herrBez
faa0caae08 Add syntax tests to augment the test coverage of
libsolidity/parsing/Scanner.cpp and libsolidity/parsing/Scanner.h
Fix #4627 and PR #5003.

- Add multiline comment test
- Add upper case hex literal test
- Add test for unicode escapes
- Add test for strings with escaped newlines
- Add test for string escapes
- Add test for strings that do not terminate before end of file
- Add test for unterminated blocks
2018-09-20 23:02:44 +02:00
chriseth
dc9853bb6e
Merge pull request #5030 from ethereum/payableConversion
Make non-payable default for conversion to address.
2018-09-20 21:20:46 +02:00
chriseth
d0461c49fe Make non-payable default for conversion to address. 2018-09-20 14:31:04 +02:00
hydai
b409faa675
Disallow uppercase X in hex number literals 2018-09-19 22:01:15 +08:00
chriseth
47b8d998d1
Merge pull request #4999 from liangdzou/fix_typo
fix some code format problems
2018-09-17 17:47:35 +02:00
chriseth
da90bc0224
Merge pull request #4984 from elopio/add-missing-inliner-test
Add a missing tests for yul inliner optimization
2018-09-17 16:32:30 +02:00
liangdzou
808c3f3df5 fix some format typos 2018-09-17 22:13:21 +08:00
Leo Arias
aae385031f Add a missing tests for yul inliner optimization
When the statement has two return values, the function is not inlinable.

When the function has one statement but it is not an assignment to the
return variable, the function is not inlinable.

l
2018-09-16 06:38:08 +00:00
liangdzou
f3cbdadec7 Do not set to ref for explicit conversion and add assertion for array
type conversion. Also, add some test cases for #4901 and #4948.
2018-09-14 08:42:40 +02:00
chriseth
5cf570e100
Merge pull request #4968 from ethereum/alethUpdateCompatible
Fix tests for newer versions of aleth.
2018-09-13 23:38:46 +02:00
Daniel Kirchner
e7daed68c1
Merge pull request #4911 from ethereum/addressPayable
Payable and non-payable address type.
2018-09-13 17:30:54 +02:00
Daniel Kirchner
3e55aa3fa2 Disable blockhash test for constantinople due to changes between aleth versions. 2018-09-13 17:18:42 +02:00
Daniel Kirchner
583b87bb3d Use "pending", not "latest" during `eth_call in sendMessage`. 2018-09-13 16:48:51 +02:00
Daniel Kirchner
ae35a58124 Add `stateMutability field to JSON AST for address` types. 2018-09-13 15:15:49 +02:00
Daniel Kirchner
12aaca1645 Add payable and non-payable state mutability to AddressType. 2018-09-13 15:15:49 +02:00
liangdzou
558a4ac49c give more information (at most 35 chars before and after) for too long lines
add tests for giving more informations for too long lines

add edge tests for giving more informations for too long lines

avoid printing out tailing white space

update test case after avoiding printing out trailing whitespace

update test case for removing the pre-release warning from reference

refactor the code to if-else flavor

rename folder to cmdlineErrorReports under test

rename folder to cmdlineErrorReports under test

ignore whitespace for reference files

avoiding to modify the file stderr_path by call sed without -i option

print ' ...' instead of ' ... ' at the end of a line
2018-09-13 09:55:54 +08:00
Daniel Kirchner
879251a78b Update test suite to use address payable. 2018-09-12 16:21:43 +02:00
Daniel Kirchner
1ce3581a52 Accept `address payable` during parsing. 2018-09-11 14:52:23 +02:00
Daniel Kirchner
a434896458 Restore `isConstructor` in the legacy AST. 2018-09-11 14:47:25 +02:00
Daniel Kirchner
b6636e2570 Add new test cases. 2018-09-11 14:47:25 +02:00
Daniel Kirchner
395ab9a872 Replace `isConstructor field in the JSON AST by a kind` field. 2018-09-11 14:47:25 +02:00
chriseth
9f6a12eeb5 Update bug description, add regex and tests. 2018-09-10 12:58:40 +02:00
chriseth
7118f53974 Tests. 2018-09-10 12:47:46 +02:00
chriseth
255eda2ea6
Merge pull request #4912 from ethereum/fixNewline
Fix bugs in comments.
2018-09-10 12:25:07 +02:00
Leonardo Alt
9927964d21 Buglist check script supports json paths 2018-09-06 18:42:21 +02:00
chriseth
6a40048aa4 Tests. 2018-09-06 16:42:59 +02:00
chriseth
0b7b8162ca This fixes several bugs with regards to line breaks and comments:
- any unicode line break (line feed, vertical tab, form feed, carriage
   return, NEL, LS and PS) is considered to terminate a single-line
   comment. The line break itself is considered to be the next token
   after the comment, leading to a parser error if it is not an
   ascii character (i.e. for NEL, LS and PS).
 - unterminated multiline comments are considered illegal tokens
 - '/** /' is considered an unterminated multiline comment
   (previously, whitespace was allowed before the last '/'
2018-09-06 16:42:59 +02:00
chriseth
522174890f
Merge pull request #4872 from bakaoh/issue4716
Crash when array index value is too large
2018-09-05 21:47:42 +02:00
Daniel Kirchner
87804b6419 Split IntegerType into IntegerType and AddressType. 2018-09-05 12:19:14 +02:00
chriseth
a996ea266c
Merge pull request #4590 from ethereum/msgValueModifier
Warn if modifier uses msg.value in non-payable function
2018-09-05 10:32:10 +02:00
bakaoh
a7ffff6a29 Fix #4716: Crash when array index value is too large 2018-09-05 10:54:38 +07:00
chriseth
e6aa15bae1
Merge pull request #4895 from ethereum/abidecodesingle
Fix abi.decode returning single value.
2018-09-04 23:47:56 +02:00
chriseth
85debe77d9
Merge pull request #4866 from bakaoh/issue4743
Fix#4743: Incorrect source location for nameless parameters
2018-09-04 20:21:03 +02:00
chriseth
3c804fd576
Merge pull request #4880 from ethereum/fix_cmdlineTest_tmpdir
Rename TMPDIR to SOLTMPDIR in cmdlineTests
2018-09-04 20:08:25 +02:00
chriseth
624dbbe142 Fix abi.decode returning single value. 2018-09-04 18:19:00 +02:00
chriseth
9daac90cf7
Merge pull request #4888 from ethereum/disallow_single_statement_vardecl_if_while_for
Disallow single statement var decl in if/while/for without blocks
2018-09-04 17:24:06 +02:00
Daniel Kirchner
e3097b30da Add another end-to-end test. 2018-09-04 15:34:21 +02:00
Daniel Kirchner
0011f8aef9 Update compilation tests. 2018-09-04 13:31:10 +02:00
Daniel Kirchner
82f512a7d4 Add return data to bare calls. 2018-09-04 13:31:10 +02:00
Leonardo Alt
17176871ab Changed error message and added tests 2018-09-04 11:48:58 +02:00
Daniel Kirchner
a102f3b783 Remove trailing whitespace for all files in the repository. 2018-09-04 11:30:30 +02:00
Leonardo Alt
b7c6e53d3d Fix endToEnd test 2018-09-03 18:35:57 +02:00
chriseth
431c2fbcf3 Turn warning into error. 2018-09-03 18:35:57 +02:00
Erik Kundt
75a92b0ffd Warns if modifier uses msg.value in non-payable function. 2018-09-03 18:35:57 +02:00
Leonardo Alt
f167baed83 mktemp might use variable TMPDIR. Renaming it in our script to avoid conflicts. 2018-09-03 12:54:29 +02:00
bakaoh
3d7b0d691f Update test to correct source location for nameless parameters 2018-08-31 09:54:11 +07:00
Leonardo Alt
583e7156ba Dynamic type as mapping key returns error instead of assertion fail 2018-08-16 11:59:41 +02:00
chriseth
cc6fa6d61f
Merge pull request #4822 from ethereum/addressStaticCall
Add ``staticcall`` to ``address``.
2018-08-16 00:13:21 +02:00
Leonardo Alt
faed71c6b1 Review suggestions 2018-08-15 17:11:18 +02:00
Leonardo Alt
c3d3ae80fa Add end to end tests 2018-08-15 17:11:18 +02:00
Leonardo Alt
b6c839e817 Disallow indexed reference types in events when using ABIEncoderV2 2018-08-15 17:11:18 +02:00
Daniel Kirchner
a34735016c Add syntax test for `address.staticcall.value`. 2018-08-15 16:06:48 +02:00
Daniel Kirchner
ed5265598b Add view pure checker tests for `address.staticcall(...)`. 2018-08-15 16:06:48 +02:00
Daniel Kirchner
7ca0aaaf6f Add `staticcall to address`. 2018-08-15 16:06:48 +02:00
chriseth
6c0261e6ab
Merge pull request #4390 from ethereum/abidecode
Add abi.decode
2018-08-15 12:31:26 +02:00
chriseth
c7d2af2637
Merge pull request #4583 from ethereum/nested_array_library_changelog
Bugfix Changelog entry regarding nested arrays returned by library functions
2018-08-15 12:30:54 +02:00
chriseth
9328ea4c3c Add abi.decode(bytes data, (...)) 2018-08-15 10:45:16 +02:00
bakaoh
3fa8829845 Fixes #4718: High CPU usage when using large variable names 2018-08-15 10:23:08 +02:00
chriseth
cc54f6c425
Merge pull request #4738 from ethereum/dataloc_merged
Enforce data location.
2018-08-14 21:38:07 +02:00
chriseth
8f27fb1f4a
Merge pull request #4542 from aarlt/constructor_natspec
Fix: natspec annotations on constructors
2018-08-14 19:13:25 +02:00
chriseth
b30da8859a Update external tests. 2018-08-14 18:53:06 +02:00
chriseth
13905a2094 Update tests. 2018-08-14 18:53:06 +02:00
mingchuan
16de7a0493 New test cases. 2018-08-14 18:53:06 +02:00
Chase McDermott
b000a022f2 Update tests 2018-08-14 18:53:06 +02:00
chriseth
3f42118d19
Merge pull request #4765 from ethereum/fixes-issue-4673
[WIP] Fixes issue where computing storage size for a number would take too long (or even cause a crash).
2018-08-14 17:34:04 +02:00
Jesse Busman
c059119145 Add implicit convertibility to function pointer with higher state mutability 2018-08-14 17:13:10 +02:00
chriseth
414559bd07
Merge pull request #4788 from ethereum/noWarnDoc
Test that documentation does not contain any warnings.
2018-08-14 16:33:39 +02:00
chriseth
ec7ccbdf86
Merge pull request #4782 from ethereum/encodePackedArrayOfStructs
Encode packed array of structs
2018-08-14 16:32:57 +02:00
Leonardo Alt
55e67e41f9 Update bug list and add regular expression to bug list and add test. 2018-08-14 15:57:38 +02:00
chriseth
6a5a187d83 Also extract tests that do not start with a pragma. 2018-08-14 15:50:46 +02:00
chriseth
f873389c62 Test that documentation does not contain any warnings. 2018-08-14 15:50:46 +02:00
Christian Parpart
43bda53410
Fixes issue where computing storage size for a number would take too long.
Fixes #4673.
2018-08-14 15:38:10 +02:00
Christian Parpart
81faafe7f2
Adds support for structs in interfaces.
Closes #4733.
2018-08-14 15:36:03 +02:00
Leonardo Alt
17cac588d0 Replace safety stop by invalid 2018-08-14 12:32:47 +02:00
chriseth
d01ffd1ad9
Merge pull request #4799 from ethereum/semanticsTestsGasEtAl
Semantics tests for ``gasleft()``, ``blockhash()`` ``tx.gasprice`` and ``block.gaslimit``
2018-08-14 12:14:53 +02:00
Daniel Kirchner
b325a70d59 Fix tests for constantinople (expect zero for the time being). 2018-08-14 11:42:34 +02:00
Daniel Kirchner
06b7edfdcf Add missing tests for `gasleft(), blockhash() tx.gasprice and block.gaslimit`. 2018-08-14 11:42:34 +02:00
chriseth
6ca3973944
Merge pull request #4777 from ethereum/typeConversionMemory
Defaul data location for type conversions is memory.
2018-08-14 11:36:19 +02:00
chriseth
3dd31b704a
Merge pull request #4798 from ethereum/mappingArgumentsAndReturns
Mapping arguments and returns
2018-08-13 17:27:29 +02:00
chriseth
ae8218543b
Merge pull request #4696 from ethereum/byteLiteralConversion
Disallow ambiguous implicit and explicit conversions from number literals to bytesXX
2018-08-13 17:25:30 +02:00
Daniel Kirchner
dfcfc4c35b Add tests for mappings in function types. 2018-08-13 16:33:37 +02:00
Daniel Kirchner
341128962f Allow mappings of arrays as arguments and return values of internal functions. 2018-08-13 16:33:37 +02:00
Daniel Kirchner
4ae59acc09 Consider mappings return values in control flow analysis. 2018-08-13 16:33:37 +02:00
Daniel Kirchner
a9f31da411 Allow mapping arguments and return values in all internal functions. 2018-08-13 15:50:22 +02:00
chriseth
bd567a22c9 Defaul data location for type conversions is memory. 2018-08-13 14:38:12 +02:00
Daniel Kirchner
57ada1d69e Allow mapping arguments and return values in internal library functions. 2018-08-13 14:31:10 +02:00
Daniel Kirchner
7d7abeb149 Disallow ambiguous conversions between number literals and bytesXX types. 2018-08-13 14:27:01 +02:00
Daniel Kirchner
954d7433bd Disallow remappings with empty prefix. 2018-08-10 19:26:48 +02:00
chriseth
a38352569b Tests. 2018-08-09 21:16:51 +02:00
chriseth
63d071d6e0
Merge pull request #4783 from elopio/test/function-call-syntactical-equality
tests: add yul simplifier not applied with function calls
2018-08-09 12:08:55 +02:00
Christian Parpart
79ba5b61b3 Fixes compilation under MSVC. 2018-08-09 10:14:47 +02:00
Leo Arias
1395bef7ae tests: add yul simplifier not applied with function calls 2018-08-09 03:46:22 +00:00
Alex Beregszaszi
ed52f422b7 Rename FunctionKind SHA3 to KECCAK256 (as the instruction was renamed in libevmasm) 2018-08-08 22:37:40 +01:00
Alex Beregszaszi
478012a000
Merge pull request #4772 from ethereum/asm-json
Add tests for the assembler object (and avoid misusing string{} for u256)
2018-08-08 21:59:07 +01:00
Alexander Arlt
f76d4d5919 Fix: natspec annotations on constructors
- natspec annotations on constructore where ignored.
2018-08-08 21:53:35 +02:00
Alex Beregszaszi
0eeb06b6ea Test for legacyAssembly in StandardCompiler 2018-08-08 20:52:18 +01:00
Alex Beregszaszi
a16461249f Add tests for the assembler object 2018-08-08 20:52:18 +01:00
chriseth
d634d20b5b
Merge pull request #4684 from ethereum/underscores_in_numeric_literals
[BREAKING] Underscores in numeric literals
2018-08-08 21:36:57 +02:00
Alex Beregszaszi
bb071f3075
Merge pull request #4769 from ethereum/inlineasm-overloading-resolution
Provide nicer error message when referencing overloaded references
2018-08-08 17:55:10 +01:00
Alex Beregszaszi
9062704054
Merge pull request #4753 from mattaereal/boost-to-string-patch
Replace boost:lexical_cast<std::string> for std::to_string.
2018-08-08 16:07:25 +01:00
Alex Beregszaszi
3c791d637d Provide nicer error message when referencing overloaded references 2018-08-08 15:59:24 +01:00
Matías Aereal Aeón
e902ce1aa0 Removing std:: from std::to_string and include for boost/lexical_cast 2018-08-08 11:26:30 -03:00
Alex Beregszaszi
1bfb841771 Remove experimental 0.5.0 pragma 2018-08-08 14:05:36 +01:00
chriseth
de8e9114fd
Merge pull request #4740 from ethereum/enforceNumberOfReturnValues
Disallow empty return in function with return arguments.
2018-08-08 14:59:09 +02:00
Alex Beregszaszi
fbc8443174
Merge pull request #4589 from sifmelcara/fix/dynamic-link-boost-test
Fix shared boost test library build by customizing main
2018-08-08 13:53:00 +01:00
Christian Parpart
b9222808f6
Cleanup & polish numbers-with-underscores parsing, also improving tests. 2018-08-08 13:38:46 +02:00
chriseth
154a7706ba
Merge pull request #4737 from ethereum/isoltestEarlyExit
Return from main if quit was requested during a sub-testsuite.
2018-08-08 12:55:01 +02:00
chriseth
3b2bd2c1df
Merge pull request #4749 from elopio/test/yul-simplifier-not-applied
tests: add yul simplifier not applied
2018-08-08 12:49:14 +02:00
Daniel Kirchner
99d3e8e45a Add back lost test case to a more reasonable location. 2018-08-08 12:48:59 +02:00
Daniel Kirchner
576ba91970 Adjust return expressions in compilation tests. 2018-08-08 12:48:59 +02:00
Alex Beregszaszi
64e3c9913f
Merge pull request #4736 from ethereum/removeFillRight
Remove remaining instances of ``fillRight``.
2018-08-08 11:27:37 +01:00
Balajiganapathi S
09a36cba02 Add stricter hex underscore rules 2018-08-08 12:05:51 +02:00
Balajiganapathi S
0000bfc604 Allow underscores in numbers. 2018-08-08 12:05:51 +02:00
Leo Arias
cf3bf57cb2 tests: add yul simplifier not applied 2018-08-07 21:58:24 +00:00
chriseth
8e93b729a4
Merge pull request #4703 from ethereum/solc-fix-double-quoting-path-names
solc: Fixes double-quoting path names on stderr.
2018-08-07 21:46:00 +02:00
Daniel Kirchner
967bb6d999 Initialize `TestTool::m_formatted`. 2018-08-07 21:23:01 +02:00
Daniel Kirchner
bb518b59aa Update and extend tests for return expressions. 2018-08-07 20:49:52 +02:00
Daniel Kirchner
a6df7b1fb8 Always count all test cases in isoltest and exit early on user request. 2018-08-07 19:28:21 +02:00
Daniel Kirchner
b11e39e25e Remove remaining instances of `fillRight` left over from tuple wildcards assignments. 2018-08-07 18:51:53 +02:00
chriseth
d7756322c0
Merge pull request #4731 from ethereum/interface-enum
Allow enums in interfaces
2018-08-07 17:20:05 +02:00
Alex Beregszaszi
a765b5b31c
Merge pull request #4720 from ethereum/abi-rational-type-identifier
Fix type identifiers for RationalNumberType (on negative numbers)
2018-08-07 14:25:11 +01:00
Alex Beregszaszi
4158a310bd
Merge pull request #4729 from ethereum/slot-on-non-storage
Properly handle invalid references used together with _slot and _offset.
2018-08-07 14:16:43 +01:00
Alex Beregszaszi
34a711a14d Add endToEnd test for referencing enums 2018-08-07 15:04:17 +02:00
Christian Parpart
39ffd7500e
solc: Fixes double-quoting path names on stderr and adds tests for it.
Before it was possible to get a failure message, such as:

    ""notfound.sol"" is not found

whereas it should be:

    "notfound.sol" is not found.
2018-08-07 14:55:22 +02:00
Alex Beregszaszi
5298d818c4 Add test for abi.encode (negative) literals 2018-08-07 13:44:24 +01:00
Alex Beregszaszi
ce29aac8ad Add more syntax tests for enums and interfaces/libraries 2018-08-07 13:39:21 +01:00
Alex Beregszaszi
13e37df97c Allow enums in interfaces 2018-08-07 13:28:53 +01:00
Alex Beregszaszi
b0f9fc5af0 Fix type identifiers for RationalNumberType 2018-08-07 13:23:14 +01:00
chriseth
9d3827266c
Merge pull request #4695 from ethereum/test-natspec
Be explicit about which contract to test for in the Natspec tests
2018-08-07 14:19:56 +02:00
Alex Beregszaszi
05cc7e79e1 More precise error message if using non-variables with _slot/_offset 2018-08-07 13:18:54 +01:00
Alex Beregszaszi
eb7b3862ac Properly handle invalid references used together with _slot and _offset. 2018-08-07 13:18:38 +01:00
Alex Beregszaszi
8b2d630275
Merge pull request #4724 from ethereum/slot-in-assembly
Do not crash on using _slot and _offset suffixes on their own
2018-08-07 12:55:40 +01:00
Alex Beregszaszi
296ba24f7f Do not crash on using _slot and _offset suffixes on their own 2018-08-07 12:14:12 +01:00
chriseth
71e26f6adb Remove clone feature. 2018-08-07 11:10:50 +01:00
chriseth
0449b6446e
Merge pull request #4694 from ethereum/test-abijson
Be explicit about which contract to test for in ABIJSON tests
2018-08-06 19:01:05 +02:00
chriseth
276724dedc
Merge pull request #4663 from ethereum/dropConstantAST
[BREAKING] Drop constant field from JSON AST
2018-08-06 18:55:12 +02:00
chriseth
3b5eee4998 Tests for deriving types for empty string. 2018-08-06 17:10:23 +02:00
chriseth
bc73617f5e
Merge pull request #4689 from ethereum/cleanup-050-tests
Cleanup 0.5.0 test cases
2018-08-06 14:45:31 +02:00
Alex Beregszaszi
423cd52844 Be explicit about which contract to test for in the Natspec tests 2018-08-06 13:35:53 +01:00
Alex Beregszaszi
3c408a32c4 Be explicit about which contract to test for in ABIJSON tests 2018-08-06 13:30:38 +01:00
Alex Beregszaszi
2ab66bf798 Cleanup 0.5.0 test cases 2018-08-06 12:03:00 +01:00
chriseth
9d03de1f25
Merge pull request #4671 from ethereum/mappingTupleAssignment
Disallow assignments to mappings within tuple assignments; allow for local variables.
2018-08-06 12:59:16 +02:00
chriseth
3576980710
Merge pull request #4644 from ethereum/event_struct_error
Disallow structs in events without ABIEncoderV2
2018-08-06 11:44:05 +02:00
chriseth
30f981fc2c
Merge pull request #4681 from ethereum/var-suggestion-crash
Fix declaration suggestion for var with different number of components
2018-08-06 11:21:54 +02:00
Daniel Kirchner
bdd86cb39c Update tests. 2018-08-06 11:17:21 +02:00
chriseth
3684151e53
Merge pull request #4677 from ethereum/jsonAstTestExtraction
JSON AST test extraction
2018-08-06 11:01:51 +02:00
Alex Beregszaszi
83e6c34526 Fix declaration suggestion for var with different number of components 2018-08-04 15:22:22 +01:00
Daniel Kirchner
55386ba130 Extract AST JSON tests. 2018-08-03 20:35:50 +02:00
Daniel Kirchner
d923926ff7 Infrastructure for extracting JSON AST tests. 2018-08-03 20:35:50 +02:00
Christian Parpart
a4ee1dfc83
Merge pull request #4412 from ethereum/v050-reference-resolver-errorTypeForLoose
[BREAKING] permanently set errorTypeForLoose from Warning to SyntaxError
2018-08-03 19:30:33 +02:00
Daniel Kirchner
cbae02b514 Additional semantics test cases. 2018-08-03 17:38:30 +02:00
Alex Beregszaszi
2c2d4c47ea
Merge pull request #4662 from evgeniuz/develop
added helper function that joins vectors of strings
2018-08-03 16:13:13 +01:00
Daniel Kirchner
1e4b5886d6 Allow assignments to local variables of mapping types. 2018-08-03 16:22:03 +02:00
Daniel Kirchner
c0a169ca90 Disallow assignments to mappings within tuple assignments. 2018-08-03 15:46:26 +02:00
Leonardo Alt
20c6cea7bb Disallow structs in events without ABIEncoderV2 2018-08-03 13:41:27 +02:00
Evgeniy Filatov
3705bcc9bc added helper function that joins vectors of strings, refactored suggestions formattingi function to use it 2018-08-03 14:07:03 +03:00
Daniel Kirchner
35c5b7de25 Turn warning about uninitialized storage returns into an error. 2018-08-02 19:34:38 +02:00
Daniel Kirchner
9d11557dc9 Define BOOST_TEST_DYN_LINK for building soltest if Boost_USE_STATIC_LIBS is not set. 2018-08-02 14:41:32 +02:00
Christian Parpart
43c01361f3 Drops tests for inline assembly jumps and function access as both isn't possible anymore. 2018-08-02 13:37:22 +01:00
Christian Parpart
a4ab305347 Drop swap_peephole_optimization test from EndToEndTests
Already covered by libevmasm/Optimiser: peephole_noncommutative_swap1, peephole_commutative_swap1 and peephole_swap_comparison
2018-08-02 13:37:22 +01:00
Christian Parpart
9b8a05ebfb Update tests to remove support for loose assembly 2018-08-02 13:37:13 +01:00
Christian Parpart
5d9320c70b Disallow loos assembly in Solidity by permanently setting it to SyntaxError (from Warning) 2018-08-02 13:36:05 +01:00
mingchuan
b89365282b Fix shared boost test library build by customizing main 2018-08-02 13:08:24 +01:00
Alex Beregszaszi
9ec3fd1632
Merge pull request #4646 from ethereum/smt_model_secondary_location
SMT model is sorted and printed as secondary location
2018-08-01 23:20:28 +01:00
Leonardo Alt
90f319615f SMT model variables are sorted and printed as secondary source location 2018-08-01 23:27:46 +02:00
Alex Beregszaszi
e1b695f199
Merge pull request #4399 from ethereum/contractWhitespace
Remove trailing whitespace in all contract files.
2018-08-01 21:59:19 +01:00
Daniel Kirchner
8781990ff3 Remove trailing whitespace in all contract files. 2018-08-01 21:57:12 +02:00
Daniel Kirchner
4bcc4d2fcf Add additional test cases. 2018-08-01 17:18:17 +02:00
Daniel Kirchner
30d9961efb Do not exclude public state variables when looking for conflicting declarations. 2018-08-01 14:31:04 +02:00
Alex Beregszaszi
ce99a5ce7f
Merge pull request #4378 from ethereum/noBaseWithoutArguments
[BREAKING] Disallow calling base constructors without arguments.
2018-08-01 13:18:37 +01:00
chriseth
061ea0cfc6 Correctly determine whether base constructor is called without parentheses. 2018-08-01 12:28:27 +01:00
chriseth
7e5406dd89 Disallow calling base constructors without arguments. 2018-08-01 12:28:27 +01:00
Christian Parpart
cb200cf7e1 Adds positive/negative tests for checking error on cyclic dependency checker exhaustion 2018-08-01 12:04:08 +01:00
chriseth
b800bfb021 Fix tests regarding contract type conversion. 2018-08-01 11:04:35 +01:00
chriseth
c8232d9759 Disallow conversion between unrelated contract types. 2018-08-01 11:04:35 +01:00
Alex Beregszaszi
21888e246b
Merge pull request #4507 from ethereum/v050-var-keyword-trace-removals
Ensures an empty use of var keyword is caught with the proper non-fatal error message
2018-08-01 10:59:26 +01:00
Christian Parpart
a7150f85a6
Ensures an empty use of var keyword is caught with the proper error message. 2018-08-01 09:59:06 +02:00
Alex Beregszaszi
fe28814d83
Merge pull request #4625 from ethereum/pragma-cleanup
Remove unnecessary or stray version pragmas
2018-07-31 11:15:45 +01:00
Leonardo Alt
210fee571f Fix crash when FunctionType has undeclared type as parameter 2018-07-31 11:17:51 +02:00
Alex Beregszaszi
7fa2d0c84e Replace stray solidity pragma with progamatically inserting it in SolidityOptimizer test 2018-07-31 00:12:46 +01:00
Alex Beregszaszi
db6c1c8ddd Remove unnecesary version pragma from some syntax tests 2018-07-31 00:12:42 +01:00
Alex Beregszaszi
7c509137cf Replace dev::eth namespace with dev::lll in LLL 2018-07-28 12:00:36 +01:00
Alex Beregszaszi
61b94b7ea4
Merge pull request #4556 from ethereum/library-data-locations
Add tests for data locations within libraries
2018-07-25 18:03:30 +01:00
Alex Beregszaszi
5a1b6856b4
Merge pull request #4561 from ethereum/scanner-tests
Add comprehensive tests for the scanner
2018-07-25 17:02:40 +01:00
Alex Beregszaszi
05e608d778
Merge pull request #4562 from ethereum/parser-tests
Add comprehensive tests for the parser
2018-07-25 16:38:54 +01:00
Alex Beregszaszi
84e0676db8 Fix upstream issues in stringutils 2018-07-25 13:56:14 +01:00
Alex Beregszaszi
2ecb7a2f72 Update stringutils to upstream 3c63f18 2018-07-25 13:55:47 +01:00
Alex Beregszaszi
b079f34c65 Scanner tests for all shifts 2018-07-25 12:59:28 +01:00
Alex Beregszaszi
aee13d709c Scanner tests for all escapes 2018-07-25 12:59:24 +01:00
Alex Beregszaszi
7b5e912874 Add syntax tests for import statements 2018-07-25 11:01:41 +01:00
Alex Beregszaszi
49573bad46 Add syntax test for illegal pragma key 2018-07-25 11:01:41 +01:00
Alex Beregszaszi
fa68e0019f Add syntax test for location specifier redeclarations 2018-07-25 11:01:41 +01:00
Alex Beregszaszi
008eb1c2c9 Add syntax test for empty emit statement 2018-07-25 11:01:41 +01:00
Alex Beregszaszi
640b8af802 Add syntax tests for assembly block type (evmasm) 2018-07-25 11:01:41 +01:00
Alex Beregszaszi
ee85430f93 Add tests for data locations within libraries 2018-07-25 10:55:23 +01:00
Alex Beregszaszi
ab3978723a Add more tests for inlineasm/AsmAnalyzer 2018-07-25 10:45:31 +01:00
Alex Beregszaszi
d647761058 Add more comprehensive tests for embedded inline assembly LValue/RValue access 2018-07-25 10:45:31 +01:00
Alex Beregszaszi
167fe7c370
Merge pull request #4572 from ethereum/cmake-boost-tests
Do not include single-header boost_unit_test
2018-07-25 10:42:44 +01:00
Alex Beregszaszi
4a61cb5b59
Merge pull request #4554 from ethereum/indexing-tests
Add comprehensive syntax tests for indexed access
2018-07-25 10:37:30 +01:00
Paweł Bylica
f31989c022
Do not include single-header boost_unit_test
Do not mix 2 different usage variants of boost_unit_test. If you link with static libs do not include the single-header variant.

See https://www.boost.org/doc/libs/1_67_0/libs/test/doc/html/boost_test/usage_variants.html#boost_test.usage_variants.single_header
2018-07-25 09:17:53 +02:00
Alex Beregszaszi
a5a61a0b77 More consistent catch statements
Also take const& in all cases.
2018-07-25 01:18:09 +01:00
Alex Beregszaszi
1dbf2d1923 Add comprehensive syntax tests for indexed access 2018-07-24 20:26:36 +01:00
Alex Beregszaszi
3e17438c41 Add syntax tests for unknown / invalid pragma 2018-07-24 18:35:47 +01:00
Alex Beregszaszi
de90290c28
Merge pull request #4527 from ethereum/mappingEnforceStorage
Enforces explicit data location for mappings
2018-07-23 20:43:38 +01:00
Erik Kundt
c622a1e56c Enforces data location of local mappings to storage. 2018-07-23 19:30:07 +02:00
Christian Parpart
9f35f0b805 Disallow functions without implementation to use modifiers. This was already the case in the experimental 0.5.0 mode. 2018-07-23 17:29:08 +01:00
chriseth
e3c2f20f6e
Merge pull request #4439 from ethereum/address_members
[BREAKING] Enforce address members not accessible by contract instance
2018-07-19 09:24:27 +02:00
Leonardo Alt
faa9c221d4 Changes in ExpressionCompiler 2018-07-18 19:51:24 +02:00
Leonardo Alt
25fa1142bc Removing tests that are not useful anymore 2018-07-18 14:52:16 +01:00
Erik Kundt
b0b35e1e6b Adds warning if function is shadowing a contract. 2018-07-18 14:29:01 +02:00
Erik Kundt
de6cd2425b Adjusts syntax tests to new constructor syntax. 2018-07-18 14:29:01 +02:00
Erik Kundt
05d0e5c8fa Adds comment about reasoning behind syntax test. 2018-07-17 20:06:07 +02:00
Erik Kundt
7d8b39ff4f Removes obsolete syntax tests. 2018-07-17 19:30:15 +02:00
chriseth
dfd2fee91d Suggests external for fallback and interface functions. 2018-07-17 18:07:36 +02:00
Erik Kundt
75bba5c9f0 Adjusts tests to expect type errors on default visibility. 2018-07-17 18:03:35 +02:00
Leonardo Alt
563e0fc9a7 Add suggestion to error message 2018-07-17 16:38:36 +01:00
Leonardo Alt
0075f4239a Address members not accessible by contract instance 2018-07-17 13:33:23 +01:00
Christian Parpart
1d33f41c1a
Merge pull request #4463 from ethereum/isoltest-colors-on-windows
isoltest: adds support for properly handling ANSI escape sequences on Windows
2018-07-17 13:08:10 +02:00
Leonardo Alt
fdfdddd8dc Add missing period in the end of error messages 2018-07-16 16:11:39 +01:00
Christian Parpart
05121eebd1 isoltest: adds support for properly handling ANSI escape sequences on Win32/Win64 builds. 2018-07-16 16:34:23 +02:00
chriseth
29dae15c50
Merge pull request #4481 from ethereum/disallow-throw
[BREAKING] Deprecate the throw statement
2018-07-16 16:25:22 +02:00
Alex Beregszaszi
bdac82ecdb Replace throw with revert() in compilation tests 2018-07-16 15:33:31 +02:00
Alex Beregszaszi
aa08460d94 Replace throw with revert() in end-to-end tests 2018-07-16 15:33:20 +02:00
Alex Beregszaszi
21e97da294 Deprecate the throw statement 2018-07-16 15:33:20 +02:00
Erik Kundt
ed2aa3b869 Fixes end-to-end tests. 2018-07-16 14:51:46 +02:00
Erik Kundt
70c58b4886 Moves unit test from initial branch. 2018-07-16 14:51:46 +02:00
Erik Kundt
63b6f1532e Specifies visibility in syntax test. 2018-07-16 14:49:55 +02:00
Erik Kundt
893f4cf092 Specifies visibility in unit tests. 2018-07-16 14:49:55 +02:00
chriseth
931794001e
Merge pull request #4500 from ethereum/v050-interface-functions-must-be-external
[BREAKING] interface functions must be external
2018-07-16 14:43:56 +02:00
Chase McDermott
f48d01d066 Added default data locations to parameters for end to end tests. 2018-07-16 14:18:16 +02:00
Christian Parpart
396bf11858 enforce interface-functions to be external-declared
- libsolidity: Enforce interface-functions must be external-declared.
- Changelog adapted to reflect changes wrt. functions in interfaces.
- test: Adjustments according to prior interface-function changes.
- tests: Adapting SolidityEndToEndTest to interface-function change.
- docs: Adapted documentation to interface-function change.
2018-07-16 12:15:36 +02:00
Chase McDermott
3267adcd14 Added default data locations to docs and other external tests. 2018-07-14 16:42:43 -05:00
chriseth
31e56f9f99
Merge pull request #4438 from ethereum/address_members_external_tests_docs
Address members used by contracts: update external tests and docs
2018-07-13 01:28:29 +02:00
chriseth
bab4a3975f
Merge pull request #4501 from ethereum/recursiveStructsWithFixedArrays
Consider fixed-size arrays when checking for recursive structs.
2018-07-13 01:26:50 +02:00
Daniel Kirchner
62645d5302 Update tests. 2018-07-12 20:33:52 +02:00
Daniel Kirchner
faa55f6544 Add test cases. 2018-07-12 20:14:31 +02:00
chriseth
5d8a8f7265
Merge pull request #4437 from ethereum/report-empty-var-decls
[BREAKING] Report empty var tuple decls
2018-07-12 19:22:38 +02:00
chriseth
81271801b4
Merge pull request #4478 from ethereum/requireStorageLocation
Turn missing storage locations into an error.
2018-07-12 18:00:05 +02:00
Christian Parpart
cc585138bc Generates a syntax error when declaring a variable declaration's LHS has no named components 2018-07-12 13:26:52 +02:00
chriseth
fa8102880f
Merge pull request #4428 from ethereum/enforce_staticcall_view
[BREAKING] Enforce STATICCALL for view and pure
2018-07-12 13:14:02 +02:00
chriseth
576f3ef18c
Merge pull request #4083 from ethereum/variable_stack_slot
[BREAKING] Allocate local variables according to their scope
2018-07-12 13:01:15 +02:00
Daniel Kirchner
899efd5e64 Update compilation tests wrt requiring storage locations. 2018-07-12 12:54:42 +02:00
Daniel Kirchner
8b4b8bdbae Update test wrt requiring storage locations. 2018-07-12 12:54:42 +02:00
Leonardo Alt
3ebfcae829 Update external tests and docs 2018-07-12 12:53:49 +02:00
Chase McDermott
fc78b32847 Added default data locations to parameters for syntax tests. 2018-07-11 20:24:50 -05:00
chriseth
71777ce729
Merge pull request #4461 from ethereum/fuzzer-fix
Catch the proper exceptions in solfuzzer
2018-07-12 00:22:38 +02:00
chriseth
99bee7e233
Merge pull request #4443 from ethereum/double_var_decl_fix
Fix crash when declaring the same var twice in the same scope
2018-07-12 00:05:32 +02:00
Alex Beregszaszi
b248fc6436 Catch the proper exceptions in solfuzzer 2018-07-11 23:49:14 +02:00
chriseth
0c9645c978
Merge pull request #4480 from ethereum/fixZeroWithExponent
Fix literals with exponents with mantissa of zero.
2018-07-11 23:45:41 +02:00
Christian Parpart
08345209e6
Merge pull request #4404 from ethereum/v050-var-keyword-suggest
[WIP] v0.5.0 var keyword type suggestion
2018-07-11 16:33:09 +02:00
Daniel Kirchner
dedf13633c Split test case into failing and succeeding case. 2018-07-11 15:37:37 +02:00
Daniel Kirchner
e8e5e12ad2 Fix literals with exponents with mantissa of zero. 2018-07-11 15:34:17 +02:00
Leonardo Alt
38026d3114 Use STATICCALL for view and pure 2018-07-11 14:45:22 +02:00
chriseth
f3abfa81ad
Merge pull request #4454 from ethereum/constructorArgCount
[BREAKING] Wrong argument count in constructor call
2018-07-11 14:45:05 +02:00
chriseth
238dbe1b99
Merge pull request #4388 from ethereum/noPackedLiterals
Disallow packed encoding of literals.
2018-07-11 14:28:20 +02:00
Erik Kundt
e7dc9d27fc Cleans up syntax test. 2018-07-11 13:26:52 +02:00
Erik Kundt
7c7e154a7b Improves error with suggestion to remove parantheses. 2018-07-11 01:58:17 +02:00
Erik Kundt
34a031609e Updates Changelog, syntax test and simplifies type checker. 2018-07-11 01:58:17 +02:00
Erik Kundt
0b960f5a9c Turns wrong argument count in base constructor call into en error. 2018-07-11 01:56:07 +02:00
Cryptomental
4116704442 test: Fix typos.
Fix typos using codespell.

Refs: #4442
2018-07-10 22:57:59 +02:00
Christian Parpart
1505e28b56 semantics: Suggest auto-deduced type when user declares variable with var keyword. 2018-07-10 22:14:19 +02:00
chriseth
d84976dc87
Merge pull request #4376 from ethereum/fallbackExternal
Fallback functions have to be external
2018-07-10 21:39:25 +02:00
chriseth
12045d2e11
Merge pull request #4464 from cryptomental/bugfix/fix-typos-in-AsmParser-and-TypeChecker
AsmParser,TypeChecker: Fix typos.
2018-07-10 21:07:56 +02:00
chriseth
6567cd3e51
Merge pull request #4466 from ethereum/tupleNotEmpty
Disallow empty tuple components.
2018-07-10 21:03:30 +02:00
Leonardo Alt
a18a475b1a Change test from public to external 2018-07-10 19:08:05 +02:00
Leonardo Alt
c286cdaa62 Fix crash for double variable declaration in the same scope. 2018-07-10 18:54:46 +02:00
Leonardo Alt
0c5e0e0d59 Added assertion and tests suggestions 2018-07-10 18:39:38 +02:00
Leonardo Alt
b750ca9741 Add more tests and assertions 2018-07-10 18:39:38 +02:00
Leonardo Alt
9d895e002d Added tests and review suggestions 2018-07-10 18:39:38 +02:00
Christian Parpart
8ca69ed8d8 defaulting to v0.5.0 behaviour of unary + operator (disallow); also adapting all tests to it 2018-07-10 16:27:57 +02:00
Daniel Kirchner
6d28278b3f Update end-to-end tests. 2018-07-10 15:53:48 +02:00
Daniel Kirchner
ad47fe23c1 Update tests. 2018-07-10 15:28:05 +02:00
chriseth
7650905567
Merge pull request #4415 from ethereum/uninitializedStoragePointer
[BREAKING] Turn uninitialized storage variables into error.
2018-07-10 15:24:01 +02:00
Cryptomental
8c0297b400 libsolidity/syntaxTests: Add a test case for unwanted named arguments.
Refs: #4442
2018-07-10 14:10:09 +02:00
Cryptomental
a55abb550d AsmParser,TypeChecker: Fix typos.
Fix typos. The change requested as a separate PR during codespell PR.
Adapt tests as well.

Refs: #4442
2018-07-10 12:33:19 +02:00
Daniel Kirchner
afa5f528f5 Update tests. 2018-07-10 12:17:01 +02:00
Daniel Kirchner
46d6454b1f Update tests. 2018-07-10 11:38:32 +02:00
chriseth
ab99893396
Merge pull request #4440 from ethereum/hex_denomination_enforce_error
[BREAKING] Enforce error on hex combined with denomination
2018-07-09 17:57:16 +02:00
chriseth
e950fd434a
Merge pull request #4403 from ethereum/syntaxTestsVisibility
Specify default visibility in syntax tests (pt. 2)
2018-07-09 17:53:23 +02:00
Leonardo Alt
c1b67a845b Enforce error on hex number combined with unit denomination 2018-07-09 17:19:41 +02:00
Alex Beregszaszi
694754b4fe
Merge pull request #4432 from ethereum/visibilityCompilationTests
Specify default visibility in compilation tests
2018-07-09 14:59:42 +01:00
Alex Beregszaszi
c42583d27e
Merge pull request #4366 from ethereum/libsolc-cleanup
Implement new libsolc API
2018-07-09 12:30:11 +02:00
Erik Kundt
19f6b5ad05 Updates interface constructor and function type test. 2018-07-06 19:42:44 +02:00
chriseth
f3e0bf1dd8
Merge pull request #4418 from ethereum/initialConstants
Only allow compile-time constants for constant state variables.
2018-07-05 17:07:32 +02:00
chriseth
c8ac861832 Fix allocation of byte arrays. 2018-07-05 14:18:14 +02:00
Erik Kundt
febbfd4204 Adds visibility to compilation tests. 2018-07-04 19:20:51 +02:00
Erik Kundt
87ab7d1821 Fixes compilation errors. 2018-07-04 15:45:42 +02:00
Erik Kundt
cbfe3766db Fixes defects in end-to-end tests. 2018-07-04 15:45:42 +02:00
Erik Kundt
7cb46ea707 Fixes assembly test. 2018-07-04 15:45:42 +02:00
Erik Kundt
fc2b006fe1 Updates unit test to specify visibility. 2018-07-04 15:45:42 +02:00
Erik Kundt
b42929975f Updates end-to-end tests to specify default visibility. 2018-07-04 15:32:49 +02:00
Erik Kundt
3f53db402f Fixes wrong visibility specifier in interface constructor test. 2018-07-04 15:15:30 +02:00
chriseth
4a332ab324
Merge pull request #4409 from ethereum/viewPureChecker
Enforce state mutability in view pure checker.
2018-07-04 14:09:46 +02:00
Erik Kundt
0dd3e6052c Fixes broken syntax tests. 2018-07-04 11:47:35 +02:00
Leonardo Alt
8202d512e0 Enforcing error on msg.gas and block.blockhash() 2018-07-04 11:42:05 +02:00
Daniel Kirchner
f5be38bff1 Extend view pure test suite. 2018-07-04 11:25:45 +02:00
Erik Kundt
2e0d019ef0 Adds default visibility specifier to syntax tests. 2018-07-04 10:45:59 +02:00
Daniel Kirchner
0a738b4ac4 Adjust tests wrt strict view pure checker. 2018-07-04 10:14:58 +02:00
chriseth
8ed3da1d5f Only allow compile-time constants for constant state variables. 2018-07-03 23:03:26 +02:00
chriseth
2211739fc4 Update tests. 2018-07-03 22:51:55 +02:00
chriseth
533d5d4b1c
Merge pull request #4379 from ethereum/constructorArgsTwice
Disallow constructor arguments given multiple times.
2018-07-03 22:49:02 +02:00
chriseth
58aeffb45b
Merge pull request #4413 from ethereum/dropConstantKeywordOnly
Drop constant keyword only
2018-07-03 20:17:01 +02:00
Daniel Kirchner
717c70a88f Update test suite. 2018-07-03 15:31:34 +02:00
chriseth
96a04be684
Merge pull request #4389 from ethereum/soltestfix
fix default difficulty to comply with YP rules
2018-07-03 15:07:58 +02:00
chriseth
f7a9c4203e Disallow packed encoding of literals. 2018-07-03 01:02:00 +02:00
Daniel Kirchner
9d23fd8013 Update compilation tests. 2018-07-02 18:58:44 +02:00
Daniel Kirchner
469dc7bbe7 Update test contracts. 2018-07-02 18:58:43 +02:00
chriseth
0f3872694b
Merge pull request #4374 from ethereum/v050-var-keyword-removal-preps-end2end-tests
V050 var keyword removal preparations (End-to-End tests)
2018-07-02 18:26:46 +02:00
chriseth
08aa7e47e4
Merge pull request #4305 from ethereum/transactionReceipts
Determine transaction status in RPC sessions.
2018-07-02 16:09:59 +02:00
Christian Parpart
e251cdcf47 test: ensure compiled tests do not use var-keyword in preparation of var-keyword removal 2018-07-02 14:32:05 +02:00
Daniel Kirchner
9aefe2f118 Remove trailing whitespace in missing visibility warning. 2018-07-02 13:14:58 +02:00
chriseth
9a71b69f40
Merge pull request #4386 from ethereum/testingDefaultVisibility
Specify default visibility in syntax tests
2018-07-02 13:06:59 +02:00
Daniel Kirchner
334c023c72 Determine transaction status in RPC sessions. 2018-07-02 12:56:33 +02:00
chriseth
85b9d3927a
Merge pull request #4224 from ethereum/revert_wrong_calldata
[BREAKING] Revert if calldata has wrong size
2018-07-02 12:55:22 +02:00
Erik Kundt
1b008c62a1 Adds review suggestions. 2018-07-02 11:44:16 +02:00
Dimitry
7b7df90e76 fix default difficulty to comply with YP rules
fix soltest to work with the recent aleth --test
2018-06-30 13:07:30 +03:00
Alex Beregszaszi
328554a4f9 Add new libsolc entry points (solidity_license/version/compile) 2018-06-29 19:30:37 +02:00
Alex Beregszaszi
7d525620d8 Rename JSONCompiler test suite to LibSolc 2018-06-29 17:47:36 +02:00
Erik Kundt
f3ca0685fe Updates syntax tests to specify default visibility. 2018-06-29 16:26:18 +02:00
chriseth
8747079746 Fix tests. 2018-06-29 16:24:14 +02:00
chriseth
f69e24c85e Disallow constructor arguments given multiple times. 2018-06-29 16:11:21 +02:00
chriseth
e289c36158
Merge pull request #4354 from ethereum/constructorSyntaxTests
Updates tests to new constructor syntax
2018-06-29 15:45:26 +02:00
Erik Kundt
e6d250772d Updates invalid syntax test. 2018-06-29 13:22:59 +02:00
chriseth
d469df45d8
Merge pull request #4352 from D-Nice/develop
Fixes storage ref var typo error from 'prefix' to 'suffix'
2018-06-29 12:27:29 +02:00
Erik Kundt
1346b4407f Updates syntax tests to new constructor syntax. 2018-06-29 11:27:01 +02:00
Erik Kundt
12c4eb7697 Updates compiled unit tests to new constructor syntax. 2018-06-29 11:27:01 +02:00
chriseth
eeef82b2d7 Fallback function has to be external: backwards-compatible changes. 2018-06-29 00:23:52 +02:00
D-Nice
3cad417710 Add passing test case 2018-06-28 16:45:53 -04:00
Alex Beregszaszi
4268062985
Merge pull request #4365 from ethereum/type-identifier-test
Some more type identifier tests
2018-06-28 16:26:25 +02:00
D-Nice
d62476fb1f
Adds storage_reference.sol syntax test 2018-06-27 19:42:46 -04:00
Alex Beregszaszi
775590b0f2 Add more FixedPoint type tests 2018-06-27 19:05:00 +02:00
Alex Beregszaszi
76465f2352 Add one more type identifier escaping test 2018-06-27 18:38:42 +02:00
chriseth
4a842ecc82
Merge pull request #4097 from ethereum/noPackedExceptForPacked
[BREAKING] call only takes a single argument and does not pad
2018-06-27 18:29:01 +02:00
chriseth
92cb4acd8a Also mention regular abi.encode in error message. 2018-06-27 15:00:34 +02:00
chriseth
4e8883b63d Add emit keyword to tests. 2018-06-27 10:49:16 +02:00
chriseth
01fd5a8d51 Add emit keyword to compilation tests. 2018-06-27 10:37:46 +02:00
chriseth
b9d035264d Add some more emits. 2018-06-26 20:09:54 +02:00
Alex Beregszaszi
80b7d36187 Remove non-0.5.0 warning for emit keyword (make it mandatory) 2018-06-26 20:00:54 +02:00
chriseth
e6595d8806
Merge pull request #4318 from ethereum/yul-internal
Rename some internal constructs from Julia/Iulia to Yul
2018-06-26 12:24:07 +02:00
Christian Parpart
e38139c800 test: Adapted to the change of the var-keyword elimination. 2018-06-26 10:40:26 +02:00
Christian Parpart
a083ccd457 test: drop obsoleted syntaxTest(s) 2018-06-26 10:40:25 +02:00
Leonardo Alt
7763d21cc6 Revert if calldata is too short or points out of bounds 2018-06-26 10:27:48 +02:00
Alex Beregszaszi
e05a31b82b Rename Julia to Yul in variables 2018-06-26 00:52:36 +02:00
Alex Beregszaszi
91db46b128 Rename test suites from J/Iulia* to Yul* 2018-06-26 00:07:28 +02:00
Erik Kundt
95c3488a26 Updates external contracts to new constructor syntax. 2018-06-26 00:00:32 +02:00
chriseth
4154e1480b Update tests and add new tests. 2018-06-25 17:17:48 +02:00
chriseth
e299a0031f Update compilation tests. 2018-06-25 17:17:48 +02:00
chriseth
86a720b96a Adjust tests. 2018-06-25 17:17:18 +02:00
chriseth
312f422e10 Forwarding length check. 2018-06-25 17:01:45 +02:00
Alex Beregszaszi
6d9a091a8e Keep the 'if it not used as an address' helper message for all cases of address related warnings 2018-06-25 16:25:21 +02:00
Alex Beregszaszi
c7f842d4cc Do not change SMT tests 2018-06-25 16:17:50 +02:00
Alex Beregszaszi
d44743c87f Replace old Truffle artifacts in external Zeppelin/Gnosis tests 2018-06-25 16:17:50 +02:00
Alex Beregszaszi
3ee3018bf6 Update external contracts in compilationTests (to support strict address literals) 2018-06-25 16:17:50 +02:00
Jason Cobb
98c9ca2575 Update tests for strict address literals 2018-06-25 16:17:50 +02:00
Christian Parpart
f44561aeeb Fixes soltest against "recent" cpp-ethereum builds.
For me, it looks like the following Git commit has introduced this behaviour:
	42b927d7aa

This commit adds dummy values for `mixHash` and `nonce` (inspired by values were cpp-ethereum's own tests),
and now, soltest runs fine again.
2018-06-25 13:55:23 +02:00
Alex Beregszaszi
e50f8d532a Disable gnosis tests temporarily 2018-06-21 21:51:28 +02:00
Alex Beregszaszi
72e87423db Disallow the years unit denomination properly 2018-06-21 20:21:02 +02:00
Christian Parpart
6de24b1c5e test: drop var-keyword in compilationTests in favor of explicit types 2018-06-21 14:14:16 +02:00
chriseth
0d1047181d
Merge pull request #4306 from ethereum/remove_050_workaround_scoping
[BREAKING] C99 scoping rules by default (remove 050 workaround)
2018-06-21 13:57:59 +02:00
Alex Beregszaszi
7e4bd3e346
Merge pull request #4219 from ethereum/functionTypeNamedArguments
Turn named return parameters in function types into an error.
2018-06-20 23:51:19 +02:00
Leonardo Alt
8862b3092b C99 scoping rules by default 2018-06-20 12:53:38 +02:00
chriseth
ba7fbf11e7
Merge pull request #4300 from nventuro/optimize-out-and
Add TruthyAnd Peephole optimization
2018-06-20 11:38:37 +02:00
Nicolás Venturo
804eb3ef9d Improves peephole_truthy_and test case 2018-06-19 17:09:50 -03:00
Alex Beregszaszi
a17059573f Disallow raw callcode (was deprecated in 0.4.12) 2018-06-19 19:31:07 +02:00
Daniel Kirchner
dbfee87860 Return parameters in function types may not be named. 2018-06-18 00:05:06 +02:00
Nicolás Venturo
172e208c6a Add TruthyAnd Peephole optimization 2018-06-15 11:27:39 -03:00
Daniel Kirchner
14d0f8c2f1 Refactor syntax test infrastructure to prepare introducing semantics tests. 2018-06-15 10:51:40 +02:00
Daniel Kirchner
0319b184ce Add difficulty field to genesis chain parameters to fix ipc tests for recent versions of cpp-ethereum. 2018-06-14 16:46:10 +02:00
Alex Beregszaszi
d24f6fd34b update tests 2018-06-14 09:31:28 +01:00
chriseth
baeabe1c2d
Merge pull request #4282 from ethereum/cli-yul
[BREAKING] Renamed the --julia CLI option to --yul
2018-06-14 08:42:37 +02:00
Christian Parpart
a211b89118 Enforce disallowing empty structs
This patch enfoces an error when it encounters an empty struct,
effectively eliminating the deprecation warning.

Also adjust 419_interface_structs to explicitely test for (non-empty) structs,
as this behaviour "may" change in the future.
2018-06-14 00:24:43 +01:00
Alex Beregszaszi
ba2a7294d8 Renamed the --julia CLI option to --yul 2018-06-14 00:09:00 +01:00
Alex Beregszaszi
76b4c0e6e6 Properly download branches of external Zeppelin/Gnosis tests 2018-06-12 22:41:56 +01:00
Alex Beregszaszi
62b05d4157
Merge pull request #4283 from ethereum/swap-test-order
Execute external Zeppelin tests before Gnosis
2018-06-12 19:48:10 +01:00
Alex Beregszaszi
dae790b118 Execute external Zeppelin tests before Gnosis 2018-06-12 19:11:56 +01:00
chriseth
1dc28c065d Properly pad data from calldata. 2018-06-12 18:51:40 +01:00
Alex Beregszaszi
2084208dd3 Ensure to always use 0.5.0 mode in solcjs tests 2018-06-12 18:16:18 +01:00
Alex Beregszaszi
d39917fd0d Update external contract in compilationTests to not use deprecated sha3 2018-06-12 18:16:18 +01:00
Alex Beregszaszi
9de45383d8 Disallow sha3/suicide aliases 2018-06-12 18:16:18 +01:00
Alex Beregszaszi
d1e7e9ef5e
Merge pull request #3627 from ethereum/additional-keywords
[BREAKING] Add new reserved keywords.
2018-06-12 16:33:26 +01:00
Daniel Kirchner
e2f4a9fcf4
Merge pull request #4277 from ethereum/signedRightShift
Signed Right Shift: Additional test and more explanation.
2018-06-12 17:19:20 +02:00
chriseth
2c8eca5dcf
Merge pull request #4265 from ethereum/remove-std
Remove obsolete 'std' directory
2018-06-12 16:59:51 +02:00
Daniel Kirchner
e4b7b2160e Add new reserved keywords. 2018-06-12 16:02:53 +02:00
Daniel Kirchner
510f227bd7 Additional test and more explanation. 2018-06-12 15:53:15 +02:00
Daniel Kirchner
1f1ec180fb
Merge pull request #4273 from ethereum/soltestExceptions
Improve exception handling in soltest and isoltest.
2018-06-12 12:26:05 +02:00
Daniel Kirchner
9f546cfafc Improve exception handling in soltest and isoltest. 2018-06-12 11:06:14 +02:00
Daniel Kirchner
f33dc92cbd Use proper SAR for signed right shifts and emulate on pre-constantinople. 2018-06-12 09:32:19 +01:00
Alex Beregszaszi
99c585fd8a Remove obsolete 'std' directory 2018-06-11 20:11:10 +01:00
Alex Beregszaszi
d035561992
Merge pull request #4206 from ethereum/050-testing
Use temporary fork of Gnosis/Zeppelin contracts
2018-06-11 19:57:56 +01:00
Alex Beregszaszi
24ca596c66
Merge pull request #4241 from ethereum/show-named-arg
Show named argument name in error
2018-06-06 16:32:08 +01:00
Alex Beregszaszi
0f572159ec Show named argument name in error 2018-06-06 15:59:27 +01:00
Alex Beregszaszi
b2a3e165cb Extract test cases from ViewPureChecker 2018-06-06 15:41:41 +01:00
chriseth
4073c02cf3
Merge pull request #4208 from ethereum/extract-name-and-type-tests
Extract name and type tests
2018-06-04 19:54:14 +02:00
chriseth
1ce40f4089 Move "create2_as_variable" back to non-isoltest tests. 2018-06-04 19:14:25 +02:00
chriseth
c59a06bb97
Merge pull request #4213 from ethereum/fixpop
Fix bug related to byte array pop.
2018-06-04 16:10:56 +02:00
Alex Beregszaszi
31a258458b Update imported stringutils to use keccak256 2018-06-04 01:05:01 +01:00
Jason Cobb
7de0d56aae Remove sha3/suicide from assembly tests 2018-06-04 01:04:49 +01:00
chriseth
4b7e58f22f Add test for pop on the stack. 2018-05-31 15:01:45 +02:00
Alex Beregszaszi
e58ffda9fd Remove extracted tests from SolidityNameAndTypeResolution 2018-05-30 20:04:34 +01:00
Alex Beregszaszi
6e23006937 Split out SolidityNameAndTypeResolution tests into SyntaxTests 2018-05-30 19:50:06 +01:00
Alex Beregszaszi
deeca7bc5d Reformat test for extraction tool 2018-05-30 18:46:28 +01:00
chriseth
0a1a8bfb09
Merge pull request #4172 from ethereum/trailing_dot
[BREAKING] Disallow trailing dot not followed by number
2018-05-30 18:51:52 +02:00
chriseth
0e3d4f773f
Merge pull request #4205 from ethereum/name-and-type-tests-split
Split up last NameAndTypeResolution test cases
2018-05-30 18:48:08 +02:00
chriseth
5a73044fa7
Merge pull request #3743 from ethereum/popStorageArray
pop() for storage arrays
2018-05-30 18:32:08 +02:00
Alex Beregszaszi
396b188352 Use temporary fork of Gnosis/Zeppelin contracts
Hopefully to be merged into upstream after the 0.5.0 release.
2018-05-30 16:47:11 +01:00
Erik Kundt
fea0d116f7 Fixes assembly bug and adds tests to cover it. 2018-05-30 17:46:43 +02:00
Erik Kundt
98d52beba3 Adds syntax tests, documentation and changelog entry.
Refines comment for array utility function.
2018-05-30 17:43:20 +02:00
Alex Beregszaszi
faf96e8e3f Gnosis and Zeppelin repo names have changed 2018-05-30 16:42:21 +01:00
Alex Beregszaszi
4ec3f508b0 Split up last NameAndTypeResolution test cases 2018-05-30 16:40:49 +01:00
Erik Kundt
34b5eca1f8 Improves assembly and adds more tests. 2018-05-30 17:40:33 +02:00
Leonardo Alt
ac68710789 Disallow trailing dots that are not followed by a number 2018-05-30 15:14:53 +01:00
chriseth
41965ca262
Merge pull request #4176 from sifmelcara/add/calldata-keyword
Add a new keyword, "calldata", to allow explicitly specify data location in external function's argument list
2018-05-30 14:42:50 +02:00
mingchuan
b7cafcbdf9
Allow using calldata keyword to specify data location 2018-05-30 18:05:55 +08:00
Alex Beregszaszi
ddc4492d5e Split up NameAndTypeResolution test cases 2018-05-30 06:19:05 +01:00
Alex Beregszaszi
6eedc6e797 Extend function type comparison test 2018-05-30 06:16:35 +01:00
Erik Kundt
7156a01acc Implements pop() for byte arrays. 2018-05-29 12:53:02 +02:00
bitshift
e9dcfb0b62 Implements pop() for value type arrays. 2018-05-29 12:53:02 +02:00
Alex Beregszaszi
885b08df40 Simplify fromElementaryTypeName tests 2018-05-23 17:41:27 +01:00
Alex Beregszaszi
536b3202a6 Move fromElementaryTypeName tests to SolidityTypes 2018-05-23 17:39:52 +01:00
chriseth
5ee2ce353e
Merge pull request #4067 from ethereum/050
[BREAKING] Version 0.5.0
2018-05-23 18:11:20 +02:00
Alex Beregszaszi
8f3c119531 Move comments into test sources in SolidityNameAndTypeResolution 2018-05-23 15:18:36 +02:00
Alex Beregszaszi
31fa6a24df Move more parser tests to syntax tests 2018-05-22 13:25:04 +02:00
Daniel Kirchner
1cbc037a45 Update control flow graph. 2018-05-16 18:32:48 +02:00
Daniel Kirchner
f627dc77d0 Fix continue inside do-while. 2018-05-16 18:32:48 +02:00
Daniel Kirchner
f5a49f679a Adjust tests. 2018-05-16 18:32:47 +02:00
Daniel Kirchner
5c59d56335 Disallow conversions between bytesX and uintY of different size. 2018-05-16 18:32:47 +02:00
Leonardo Alt
a19b516b2b Add syntax tests and Changelog entry 2018-05-16 18:32:47 +02:00
Leonardo Alt
0b6eea0c55 Bool variables should not allow arithmetic comparison 2018-05-16 18:32:47 +02:00
chriseth
9705678269 Merge pull request #3987 from ethereum/solc_remove_stdin
BREAKING Solc: read from stdin only if "-" is explicitly given
2018-05-16 18:32:44 +02:00
Alex Beregszaszi
0bed065ee7 Fix source location assertion in isoltest 2018-05-16 15:52:43 +02:00
Alex Beregszaszi
adce9ca812 Tidy up tests to always have closing braces on the proper line 2018-05-16 15:52:24 +02:00
Alex Beregszaszi
221a4d1f1f Split warning for multi arguments for hash functions 2018-05-16 11:12:25 +02:00
chriseth
03f60410c9 Add test for single non-bytes argument. 2018-05-16 09:48:03 +02:00
chriseth
203475ef02 Adjust tests. 2018-05-16 09:48:03 +02:00
chriseth
8b98ff470c Add test for forwarding length check. 2018-05-16 09:48:03 +02:00
chriseth
03c2484407
Merge pull request #4145 from ethereum/more-parser-test-moves
Move couple of parser tests to syntax tests.
2018-05-16 09:44:47 +02:00
chriseth
c781baf733 Add tests for multi variable declaration statement. 2018-05-16 03:52:24 +02:00
Alex Beregszaszi
7fb43fe854 Move couple of parser tests to syntax tests. 2018-05-16 03:48:37 +02:00
chriseth
2ba0002998
Merge pull request #4139 from ethereum/abiEncodeIsPure
ABI encoding functions are pure and should be usable in constants.
2018-05-15 16:59:48 +02:00
chriseth
63861aac4a
Merge pull request #3947 from ethereum/smt_storage
[SMTChecker] Support to integer and Bool storage vars
2018-05-15 14:54:41 +02:00
chriseth
dac0029d16 ABI encoding functions are pure and should be usable in constants. 2018-05-15 14:45:54 +02:00
chriseth
dce6224052
Merge pull request #4062 from ethereum/revert-variable
Fix revert with reason coming from a string variable
2018-05-15 14:44:39 +02:00
Leonardo Alt
a0b42105e4 Testing state vars that are declared after functions that use them 2018-05-15 14:28:08 +02:00
Leonardo Alt
4117e859eb [SMTChecker] Declaring all state vars before any function is visited 2018-05-15 14:28:08 +02:00
Leonardo Alt
2dbb35d4a8 [SMTChecker] Support to integer and Bool storage vars 2018-05-15 14:22:50 +02:00
Daniel Kirchner
56238ab1ec Add test for default location. 2018-05-14 20:23:40 +02:00
Daniel Kirchner
16e966dea0 Add control flow analyzer and test for uninitialized storage returns. 2018-05-14 20:23:40 +02:00
chriseth
ab63ab1cbb
Merge pull request #4093 from ethereum/prepareDropConstantKeyword
Prepare drop constant keyword.
2018-05-14 12:47:07 +02:00
Daniel Kirchner
9b7ded2f78 Remove "view"'s in end-to-end tests that will result in errors in 0.5.0. 2018-05-11 11:01:06 +02:00
mingchuan
dbd0a7ed60
Fix link error when using boost shared library 2018-05-11 11:20:19 +08:00
Alex Beregszaszi
c03a29dea8 Fix revert with reason coming from a string variable 2018-05-09 17:53:17 +02:00
Daniel Kirchner
bc47265b3f Replace constant with view in the tests. 2018-05-09 15:07:47 +02:00
Alex Beregszaszi
2c3f57bec6
Merge pull request #4104 from ethereum/parserErrorSourceLocations
Proper source locations for parser errors.
2018-05-09 14:06:30 +01:00
Daniel Kirchner
305fc0626b Update test expectations. 2018-05-09 14:08:25 +02:00
Daniel Kirchner
3e6a8d7c2a Add more tests for right shifts. 2018-05-09 12:50:56 +02:00
Alex Beregszaszi
8afd0ea030 Introduce Julia filter to encapsulate top level Block as a FunctionDefinition (wasm specific) 2018-05-09 11:21:03 +02:00
chriseth
54aa10ce36
Merge pull request #4054 from ethereum/token-names
Improve parser error messages
2018-05-09 11:06:23 +02:00
chriseth
bbae4fb0ef Test with high path complexity. 2018-05-09 10:53:31 +02:00
chriseth
8ee5d3b274 New tests for wildcard assignments. 2018-05-08 15:32:36 +01:00
chriseth
43ec1699ba Remove deprecated syntax from a test 2018-05-08 15:13:32 +01:00
chriseth
07e862a145 Extract tests. 2018-05-08 15:13:32 +01:00
chriseth
d0bd549d85
Merge pull request #3256 from ethereum/fullInliner
Full inliner
2018-05-07 11:31:35 +02:00
Leonardo Alt
db5ea8ec03 Read from stdin only if - is explicitly given 2018-05-07 09:32:46 +02:00
chriseth
150d226603
Merge pull request #4063 from ethereum/emit-non-event
Show proper error when trying to emit a non-event
2018-05-04 15:02:04 +02:00
Alex Beregszaszi
840ed1e88a Update parser test expectations 2018-05-04 13:31:56 +01:00
Alex Beregszaszi
ffe7f224a6 Show proper error when trying to emit a non-event 2018-05-04 12:47:01 +02:00
Alex Beregszaszi
ed9f80690b Simplify expectIdentifierToken by using expectToken 2018-05-03 22:10:51 +01:00
chriseth
650244f619
Merge pull request #4053 from ethereum/parser-syntax-tests
Move some parser tests to syntax tests
2018-05-03 08:35:00 +02:00
Alex Beregszaszi
07e765a2f1 Move some parser tests to syntax tests 2018-05-02 21:21:11 +01:00
chriseth
d2145428c5 Fix test case strings. 2018-05-02 17:39:42 +02:00
chriseth
78945e81e4 Test the removal of the result variable. 2018-05-02 17:39:42 +02:00
chriseth
5cd84a630c Tests. 2018-05-02 17:39:42 +02:00
chriseth
a856135bbf
Merge pull request #3797 from ethereum/shift-constantinople
Use native shift instructions on Constantinople
2018-05-02 16:50:15 +02:00
chriseth
8debded743
Revert "BREAKING: Bool variables should not allow arithmetic comparison" 2018-05-02 15:56:59 +02:00
chriseth
42289b642f
Merge pull request #4003 from ethereum/bool_vars_comparison
BREAKING: Bool variables should not allow arithmetic comparison
2018-05-02 15:56:06 +02:00
Alexander Arlt
f94b793472 Add virtual destructors on base classes. 2018-05-02 13:29:16 +02:00
Alex Beregszaszi
971941b3f6 Update source location test expectations 2018-04-30 21:23:08 +01:00
Alex Beregszaszi
c44294d02d Add syntax tests for bytesM 2018-04-30 13:02:02 +01:00
Leonardo Alt
d43436cfec Add syntax tests and Changelog entry 2018-04-27 14:13:18 +02:00
Leonardo Alt
ab251c7e7d Bool variables should not allow arithmetic comparison 2018-04-27 11:35:58 +02:00
chriseth
d1e1293fbd
Merge pull request #3981 from ethereum/years-suffix
The "year" denomination is deprecated
2018-04-24 12:12:03 +02:00
Alex Beregszaszi
258ae8927e
Merge pull request #3970 from elopio/test/docstring-tag-end
docstring: add missing space
2018-04-24 02:16:27 +01:00
Leo Arias
b74566e4ea docstring: add missing space 2018-04-23 21:47:53 +00:00
chriseth
e685f9f59e
Merge pull request #3976 from ethereum/emptyTupleComponent
Empty tuple components should not be possible
2018-04-23 17:35:00 +02:00
Alex Beregszaszi
1ac0090f31 The "year" denomination is deprecated 2018-04-23 16:19:51 +01:00
Alex Beregszaszi
75faed7c55 Add more denomination tests 2018-04-23 16:14:39 +01:00
Erik Kundt
896018c8a3 Treats inline array as an error. 2018-04-23 17:11:41 +02:00
Alex Beregszaszi
6d26ad1e61 Extract subdenomination tests 2018-04-23 16:10:10 +01:00
Erik Kundt
b2ff9bc88d Turns it into warning (error for 0.5.0) and adds Changelog entry. 2018-04-23 17:09:42 +02:00
Erik Kundt
f2b58de92c Prevents null type from being used in tuple. 2018-04-22 16:54:33 +02:00
Alex Beregszaszi
0493e3b053 Turn deprecated warnings for sha3/suicide into errors (experimental 0.5.0) 2018-04-20 17:40:48 +01:00
Alex Beregszaszi
edd20ebefb Extract syntax tests 2018-04-20 17:38:16 +01:00
Alex Beregszaszi
65345162b4 Update tight packing test cases 2018-04-20 12:01:51 +01:00
Alex Beregszaszi
069ea38916 Make literals an error for tight packing (experimental 0.5.0) 2018-04-20 11:58:16 +01:00
Alex Beregszaszi
38460d8b47 Remove unnecessary masking of the result of known short instructions 2018-04-19 23:59:06 +01:00
chriseth
2546a274ca
Merge pull request #3941 from ethereum/bytes-contract
Disallow explicit conversion of bytesXX to contract
2018-04-19 16:10:15 +02:00
Alex Beregszaszi
754d79edfa Disallow explicit conversion of bytesXX to contract 2018-04-19 15:58:14 +02:00
chriseth
6407f1f7bb
Merge pull request #3932 from ethereum/betterErrorForFailedLookup
Better error for failed lookup
2018-04-19 14:25:12 +02:00
Alex Beregszaszi
d577f06ad8
Merge pull request #3928 from ethereum/removeZeppelinPatches
Remove Zeppelin patches.
2018-04-19 00:25:48 +01:00
chriseth
a94945dfe4 Improve error message for failed member lookup. 2018-04-18 22:56:45 +01:00
chriseth
17beac1e07 Extract tests. 2018-04-18 22:52:29 +01:00
chriseth
4895864302 Warn about functions named "constructor". 2018-04-18 21:23:09 +02:00
chriseth
e22929ebb8 Remove Zeppelin patches. 2018-04-18 18:14:45 +02:00
chriseth
29a97f1641 Fix name clashes between constructor and fallback function. 2018-04-18 14:24:35 +02:00
chriseth
f510348ff1 Extract tests. 2018-04-18 14:24:35 +02:00
chriseth
3d04d83297
Merge pull request #3868 from ethereum/bytescleanup
Properly force-clean for shortening bytesXX conversions.
2018-04-16 15:23:36 +02:00
chriseth
533d08517f
Merge pull request #3793 from ethereum/rationalNumberLimit
Rational number limit
2018-04-16 13:10:50 +02:00
chriseth
bf57500e25 Tests for bytes cleanup. 2018-04-16 12:47:38 +02:00
Erik Kundt
33fbf88707 Limits rational numbers to 4096 bits. 2018-04-16 11:45:55 +02:00
chriseth
95c49b367e
Merge pull request #3875 from ethereum/constructorSelfRef
Stricter check for "this" in constructor.
2018-04-13 18:39:31 +02:00
Daniel Kirchner
be37e3a912 Stricter check for member access to "this" in constructor. 2018-04-13 15:57:13 +02:00
Erik Kundt
6c656a9391 Adds unit test that covers long typeDescription and renames suite. 2018-04-12 21:14:50 +02:00
Erik Kundt
34da3e634f Separates tests for legacy and compact output. 2018-04-12 21:14:50 +02:00
Erik Kundt
824008340a Adds type expectations to legacy tests. 2018-04-12 21:14:50 +02:00
Erik Kundt
8935c0dd2f Uses short string representation of TypePointer 2018-04-12 21:14:50 +02:00
chriseth
7054defdd6
Merge pull request #3364 from ethereum/revertWithReason
Revert with reason
2018-04-12 21:01:08 +02:00
chriseth
44416d1ac6
Merge pull request #2980 from ethereum/abi-api
Add abi.encode and abi.encodePacked
2018-04-12 20:55:03 +02:00
chriseth
966367305a Remove dead code and clarify throw. 2018-04-12 20:13:16 +02:00
Daniel Kirchner
db40bd46af Add additional test for `var` for storage variables. 2018-04-12 16:46:35 +02:00
chriseth
75b8828666 Allow struct encoding with new encoder. 2018-04-12 16:37:16 +02:00
Daniel Kirchner
6862f22943 Fix internal compiler error when parsing `var` declaration without identifier. 2018-04-12 14:57:14 +02:00
chriseth
b25598126e Update documentation and minor changes. 2018-04-12 13:09:38 +02:00
chriseth
4faa839813 Use error signature for revert data. 2018-04-12 13:09:38 +02:00
chriseth
338a875134 Update expectation. 2018-04-12 13:09:38 +02:00
chriseth
e133b1a0cd Adjust expectations in case of homestead VM. 2018-04-12 13:09:38 +02:00
chriseth
42c4c78390 Adjust tests. 2018-04-12 13:09:38 +02:00
chriseth
167ee2fcbb Update source location tests. 2018-04-12 13:09:38 +02:00
chriseth
aa715f8759 Tests about error bubbling for create and transfer. 2018-04-12 13:09:38 +02:00
chriseth
7a9ee69e98 Bubble up error messages. 2018-04-12 13:09:38 +02:00
chriseth
ae1d040285 Allow error string for `require`. 2018-04-12 13:09:37 +02:00
chriseth
a06249c984 Tests for revert with reason string. 2018-04-12 13:09:37 +02:00
chriseth
c3dc67d0e0
Merge pull request #3848 from ethereum/constantDivisionByZero
Error on invalid arithmetic with constant expressions.
2018-04-12 11:49:08 +02:00
Daniel Kirchner
d42476e241 Add test to check ConstantEvaluator for pure non-rational functions. 2018-04-12 11:33:54 +02:00
chriseth
7343c40283 Check partial function parameters if rest is arbitrary. 2018-04-12 00:10:25 +02:00
chriseth
c4a6a63f36 Tests for view and pure. 2018-04-12 00:10:25 +02:00
chriseth
44c0d7ca5e Tests. 2018-04-12 00:10:25 +02:00
Daniel Kirchner
932915633b Add tests for literal operations as well. 2018-04-11 23:20:40 +02:00
Alex Beregszaszi
d56acb68ab Add abi.encode, abi.encodePacked, abi.encodeWithSelector and abi.encodeWithSignature. 2018-04-11 22:32:10 +02:00
chriseth
b5a696ad48 Properly cope with constructor headers. 2018-04-11 22:00:21 +02:00
chriseth
52f68d3b63 Update expectations. 2018-04-11 22:00:21 +02:00
chriseth
4e1ea0866d Extract modifier tests. 2018-04-11 22:00:21 +02:00
chriseth
2ad1acaf72 Warn if modifiers are applied to functions without implementation. 2018-04-11 22:00:21 +02:00
chriseth
42b90ad4c3 New tests for function state variables. 2018-04-11 22:00:04 +02:00
chriseth
08e807aea0 Add expectations. 2018-04-11 22:00:04 +02:00
chriseth
bd27ce0e25 Extract function type tests. 2018-04-11 22:00:04 +02:00
chriseth
ae3fca6db2
Merge pull request #3863 from ethereum/fixGasEstimation
Correctly ignore costs of fallback for other functions.
2018-04-11 21:53:41 +02:00
Daniel Kirchner
daa69df447 Error on invalid arithmetic with constant expressions. 2018-04-11 21:17:10 +02:00
chriseth
928ce08845 Correctly ignore costs of fallback for other functions. 2018-04-11 19:42:34 +01:00
Daniel Kirchner
cb548f6f53 Fix ConstantEvaluator to correctly handle single element tuples. 2018-04-11 18:30:34 +02:00
Daniel Kirchner
fdcbf1337a Syntax Tests: extract array_length_* tests. 2018-04-11 18:01:24 +02:00
chriseth
d50d1f0ac1
Merge pull request #3580 from ethereum/asm-bitshift-optim
Add simplification rule for bitwise shifting
2018-04-11 17:18:31 +02:00
chriseth
05781c955b Fix line numbers for errors. 2018-04-11 16:37:49 +02:00
chriseth
c9bdbcf470
Merge pull request #3309 from ethereum/limit-errors
Limit the number of errors output in a single run to 256
2018-04-11 16:13:41 +02:00
Jason Cobb
3b7b962b66 Fix bug in typechecking when comparing rational literals 2018-04-11 12:03:08 +02:00
Alex Beregszaszi
2e73ef5ac5 Ignore shift warnings on constantinople tests 2018-04-10 15:29:55 +01:00
Alex Beregszaszi
5f76f47f2e Add end to end tests for SHL/SHR/SAR instructions (constantinople only) 2018-04-10 15:29:54 +01:00
Daniel Kirchner
f03695731b Add source locations to syntax test expectations. 2018-04-10 14:08:22 +02:00
Daniel Kirchner
3eedbc6a9c Error when using no parentheses in modifier-style constructor calls. 2018-04-10 12:09:34 +02:00
Daniel Kirchner
b918a105a4 Move constructor argument override check to TypeChecker and reuse annotations in ContractCompiler. 2018-04-09 15:26:08 +02:00
Daniel Kirchner
b8fdb666e2 Allow duplicated constructor calls, if no arguments; support for multiple inheritance; backwards compatibility.
# tmp
2018-04-09 15:26:05 +02:00
Federico Bond
4e037281ac Error on duplicated super constructor calls 2018-04-09 11:22:35 +02:00
chriseth
a38418f0d9 Common subexpression eliminator. 2018-04-06 15:16:29 +02:00
Alex Beregszaszi
d5f40c141b Limit the number of errors output in a single run to 256 2018-04-06 13:52:19 +02:00
chriseth
5b1c0506fa Allow `memory` suffix for internal elementary type parsing. 2018-04-05 16:06:04 +02:00
chriseth
95b0589f77
Merge pull request #3828 from ethereum/soltest
Show JSON error if jsonParseStrict failed in soltest
2018-04-05 15:22:26 +02:00
chriseth
2d22549f64
Merge pull request #3827 from ethereum/constantinople
Support constantinople in soltest
2018-04-05 15:21:45 +02:00
Daniel Kirchner
037eba20fc
Merge pull request #3824 from ethereum/baseArgumentsEmptyParenthesis
Error when using empty parentheses for base class constructors that r…
2018-04-05 14:43:28 +02:00
Alex Beregszaszi
ac6a30442f Support constantinople in soltest 2018-04-05 12:11:24 +02:00
Alex Beregszaszi
36d6c27e68
Merge pull request #3745 from ethereum/fixRecursion
Fix invalid recursion errors for structs
2018-04-05 12:04:54 +02:00
Alex Beregszaszi
7f232358bb Show JSON error if jsonParseStrict failed in soltest 2018-04-05 11:59:31 +02:00
chriseth
c6da5c1650
Merge pull request #3822 from ethereum/swap-comparison
Replace comparison operators with opposites if preceded by SWAP1
2018-04-05 11:57:26 +02:00
Daniel Kirchner
96eff0ff6a Error when using empty parenthesis for base class constructors that require arguments. 2018-04-05 11:52:22 +02:00
Alex Beregszaszi
8dc9113e37 Add end-to-end test for SwapComparison and CommutativeSwap peephole optimisers 2018-04-05 10:54:39 +02:00
Alex Beregszaszi
02ea0e547f Replace comparison operators with opposites if preceded by SWAP1 2018-04-04 17:47:58 +02:00
chriseth
65f18a18de More specific push implementation. 2018-04-04 16:50:45 +02:00
chriseth
016f562348
Merge pull request #3808 from ethereum/parserTests
SyntaxTests: extend syntax tests and isoltest to support parser error…
2018-04-04 14:52:01 +02:00
chriseth
0cbe55005d Create empty dynamic memory arrays more efficiently. 2018-04-04 12:37:04 +02:00
Alex Beregszaszi
920de496ab
Merge pull request #3798 from ethereum/commutative-swap
Remove useless SWAP1 in front of commutative operations
2018-04-04 08:15:24 +02:00
Daniel Kirchner
87ad337ae0 Adds parsing sub-directory in syntaxTests and moves two example tests from SolidityParser.cpp to test contracts. 2018-04-03 19:54:46 +02:00
Daniel Kirchner
6f9644add1 SyntaxTests: extend syntax tests and isoltest to support parser errors and compiler exceptions. 2018-04-03 19:54:45 +02:00
Alex Beregszaszi
be6051bead Test multiple instructions with the (non)commutative peephole optimiser 2018-04-03 18:57:28 +02:00
Alex Beregszaszi
17bcabb6cf Remove useless SWAP1 in front of commutative operations 2018-04-03 18:57:07 +02:00
Daniel Kirchner
c98464db06 Remove redundant test and enforce success without warnings. 2018-04-03 18:21:55 +02:00
Daniel Kirchner
d664a599e6 Constructors are defined using the `constructor` keyword. 2018-04-03 18:21:55 +02:00
Alex Beregszaszi
0edce4b570
Merge pull request #3693 from ethereum/optimizeMLOAD
Optimize across MLOAD if MSIZE is not used.
2018-04-03 15:58:11 +01:00
chriseth
8fdbd19a05 Extract constant cycle tests. 2018-04-03 16:29:18 +02:00
chriseth
5bdadff0d8 Fix detection of recursive structs. 2018-04-03 16:27:28 +02:00
chriseth
c42caedec2 Extract recursive struct tests. 2018-04-03 16:27:28 +02:00
Alex Beregszaszi
7753249f64
Merge pull request #3699 from ethereum/interfaceExternalVisibility
Defaults to external visibility for interfaces.
2018-04-03 15:15:36 +01:00
chriseth
a54fdc495f Fix: Treat empty base constructor argument list as not provided. 2018-04-03 14:53:48 +02:00
chriseth
e64e397f24 Add memory array init test. 2018-04-03 14:34:32 +02:00
chriseth
138dba1a3f Test number of sstore operations. 2018-04-03 14:34:32 +02:00
chriseth
6777f7a57f Optimize across MLOAD if MSIZE is not used. 2018-04-03 14:34:32 +02:00
Erik Kundt
f9efa41749 Makes visibility warning more concise. 2018-04-03 11:16:50 +02:00
Erik Kundt
601659c384 Moves all interface function visibility related tests. 2018-04-03 11:16:50 +02:00
bitshift
8fe1cfb12e Defaults to external visibility for interfaces. 2018-04-03 11:16:44 +02:00
Jason Cobb
e37b619593 Set default fixed point decimal places to 18 2018-03-31 00:56:36 +01:00
Alex Beregszaszi
076c0754ea Update tests for empty structs 2018-03-31 00:27:01 +01:00
chriseth
326d656a55
Merge pull request #3790 from ethereum/empty-structs
Disallow empty structs
2018-03-30 13:58:35 +02:00
chriseth
5c8a6aac69 Prevent encoding of weird types and support packed encoding of external function types. 2018-03-29 09:57:11 +01:00
Anthony Broad-Crawford
8a18f22b87 Support for error on non-existant or irregular files with command line option to ignore 2018-03-28 10:25:43 +01:00
chriseth
3bb54e8bd5
Merge pull request #3775 from federicobond/improve-error-fractional-shift
Improve error message when attempting to shift by fractional number
2018-03-28 11:16:44 +02:00
Alex Beregszaszi
ebb12756ad Still allow empty structs for non-0.5.0 mode 2018-03-27 15:49:41 +01:00
Alex Beregszaszi
b540ba527a Disallow empty structs 2018-03-27 15:49:41 +01:00
chriseth
62559cf127
Merge pull request #3681 from ethereum/interface-external
Allow overriding external functions in interfaces with public in a child
2018-03-27 15:47:59 +02:00
chriseth
59538e9a04
Merge pull request #3686 from ethereum/doNotIncludeItnernal
Do not include internal functions only used by constructor
2018-03-27 15:28:08 +02:00
chriseth
af26228159
Merge pull request #3748 from ethereum/extractScopingTests
Extract scoping tests
2018-03-27 15:23:36 +02:00
chriseth
f8f50e14d2 Test that internal functions only used by constructor are not included in runtime context. 2018-03-27 04:00:12 +01:00
bitshift
2c56e53046 Changes deprecation and adjusts tests. 2018-03-27 03:30:03 +01:00
bitshift
be35a65eb3 Adds unit tests for moved function. 2018-03-27 03:30:03 +01:00
Alex Beregszaszi
ef3595b000 Allow overriding external functions in interfaces with public in an implementing contract 2018-03-26 11:35:17 +01:00
Federico Bond
b79531bebf Improve error message when trying to shift by fractional number 2018-03-22 10:05:49 -03:00
chriseth
85b0cfea9a
Merge pull request #3308 from ethereum/usereturndatacopy
Use returndatacopy for retrieving dynamically sized outputs.
2018-03-21 18:12:41 +01:00
Alex Beregszaszi
8fd53c1c03
Merge pull request #3744 from ethereum/useUsrBinEditor
Use /usr/bin/editor if exists.
2018-03-21 15:28:21 +00:00
chriseth
cc0f70263f Tests for returning dynamic data. 2018-03-21 14:53:29 +00:00
chriseth
c2709a2d8e Decode dynamic data. 2018-03-21 14:53:29 +00:00
Daniel Kirchner
e68c19c47b Only consider files ending with .sol and not starting with ~ in syntax tests. 2018-03-16 12:28:21 +01:00
chriseth
c9db105ad7 Extract scoping tests. 2018-03-16 00:47:32 +01:00
chriseth
ea8d5f8afc Use /usr/bin/editor if exists. 2018-03-15 18:20:23 +01:00
Daniel Kirchner
50ad89d369 Only colour error type, not error message in isoltest. 2018-03-15 16:27:54 +01:00
Daniel Kirchner
7fa892eca9 Add interactive test tool isoltest. 2018-03-15 16:23:49 +01:00
Daniel Kirchner
269241e910 Add formatted printing to SyntaxTest and expand its public interface. 2018-03-15 16:23:46 +01:00
chriseth
78abe81f08
Merge branch 'develop' into externalFunctionsInLibraries 2018-03-14 18:07:55 +01:00
chriseth
d0c96d53e9
Merge pull request #3734 from ethereum/soltestOptions
test: Rename test/TestHelper.* to test/Options.* and add Options::val…
2018-03-14 18:05:48 +01:00
chriseth
abc7a45230
Merge pull request #3725 from ethereum/blockhashNoCall
Allow ``block.blockhash`` without it being called.
2018-03-14 18:04:40 +01:00
Alex Beregszaszi
59658afa30
Merge pull request #3722 from ethereum/fixMods
Fix modifier lookup in libraries.
2018-03-14 17:20:51 +01:00
chriseth
c3f07b5294
Merge pull request #3730 from ethereum/docstringBug
DocStringParser: Fix error message for empty parameter description.
2018-03-14 16:21:29 +01:00
Daniel Kirchner
d63d41b3b5 test: Rename test/TestHelper.* to test/Options.* and add Options::validate(). 2018-03-14 12:04:04 +01:00
Daniel Kirchner
1882c508c6 soltest: force the use of the --testpath option for soltest with an explicit error. 2018-03-14 10:45:01 +01:00
Daniel Kirchner
9d079fd126 DocStringParser: Add Changelog entry and test case for empty descriptions. 2018-03-14 10:34:16 +01:00
Daniel Kirchner
09420f1a44 Store filenames in static variable to guarantee sufficient lifetime. 2018-03-13 18:14:57 +01:00
chriseth
834d63de2c Allow `block.blockhash` without being called. 2018-03-13 17:34:21 +01:00
chriseth
eecc26deec Make external library functions accessible. 2018-03-13 17:18:46 +01:00
chriseth
51f9e350b1 Tests. 2018-03-13 16:55:41 +01:00
chriseth
58af150c3d Changelog entry. 2018-03-13 16:55:41 +01:00
Daniel Kirchner
7091b6c8b5 Minor adjustments. 2018-03-13 12:30:56 +01:00
Daniel Kirchner
3232561d97 Refactoring; fuse SyntaxTestParser and SyntaxTester to SyntaxTest. 2018-03-13 11:20:11 +01:00
Daniel Kirchner
317c1f7fa3 Workaround for boost < 1.59.0 2018-03-13 11:20:11 +01:00
Daniel Kirchner
49eaf7c3fd Infrastructure for extracting syntax tests in separate test files. 2018-03-13 11:20:11 +01:00
Leonardo Alt
c2d26eb6a2 [SMTChecker_Bool] Fix PR comments; Add support to gt, ge, lt, le. and tests. 2018-03-12 20:16:47 +01:00
Leonardo Alt
6a940f0a99 [SMTChecker] Support to Bool variables 2018-03-12 20:16:47 +01:00
chriseth
886dc0512c
Merge pull request #3708 from ethereum/moveTestTools
Move test tools to the subdirectory test/tools and adjust CMakeLists
2018-03-12 20:09:07 +01:00
Daniel Kirchner
121f87b043 Move test tools to the subdirectory test/tools and adjust CMakeLists.txt. 2018-03-12 18:40:20 +01:00
Alex Beregszaszi
a59d6d2e53 Support constantinople in evm-version 2018-03-12 18:13:19 +01:00
chriseth
ea48d8ade3 Fix test. 2018-03-06 20:15:43 +01:00
Alex Beregszaszi
ba8819542f
Merge pull request #3611 from ethereum/warn-using-address-overload
Warn if using address overloads on contracts
2018-03-06 19:13:55 +01:00
chriseth
84d711fd1d Tests for warnings/errors for loose assembly. 2018-03-06 17:45:34 +01:00
chriseth
fd1662d1c4 Warn about using loose inline assembly features as experimental 0.5.0 feature. 2018-03-06 17:45:34 +01:00
Alex Beregszaszi
14b12ae745
Merge pull request #2966 from ethereum/useStaticCall
Use STATICCALL for pure function calls.
2018-03-06 17:07:03 +01:00
Alex Beregszaszi
83dacbf669
Merge pull request #3549 from ethereum/fixmultidim
Properly detect which array and struct types are unsupported by the old ABI encoder.
2018-03-06 15:51:17 +01:00
chriseth
a3593df43b Test for using staticcall for view and pure functions. 2018-03-06 15:30:18 +01:00
chriseth
f6c0daec14
Merge pull request #3652 from ethereum/gasleft_v2
Use StaticAnalyzer to deprecate msg.gas instead of conditionally remo…
2018-03-06 09:26:14 +01:00
Daniel Kirchner
91b13b734d Use StaticAnalyzer to deprecate msg.gas instead of conditionally removing it in MagicType. 2018-03-05 23:16:26 +01:00
chriseth
3793aa405b
Merge pull request #3643 from ethereum/gasleft
Move msg.gas to global function gasleft(). Closes #2971.
2018-03-05 20:11:37 +01:00
Daniel Kirchner
2213f9946b Improved gasleft tests. 2018-03-05 18:45:02 +01:00
Alex Beregszaszi
fd60c1cf86 Warn if using address overloads on contracts 2018-03-05 15:50:27 +01:00
Daniel Kirchner
29fb5fe1c9 Add test cases for shadowing gasleft with local functions/variables. 2018-03-05 13:28:57 +01:00
Daniel Kirchner
298bdeec49 Remove unstable test case. 2018-03-05 13:28:27 +01:00
chriseth
477571e190 Do not warn about 0.5.0 experimental pragma. 2018-03-05 12:14:44 +01:00
chriseth
6dc137317f
Merge pull request #3569 from ethereum/evmVersion
EVM version
2018-03-05 12:10:49 +01:00
chriseth
6ec4517929 Use EVM version in gas meter and optimizer. 2018-03-05 11:36:33 +01:00
Daniel Kirchner
c633c0eacb Move msg.gas to global function gasleft(). Closes #2971. 2018-03-05 11:18:04 +01:00
chriseth
5982869e94
Merge pull request #3633 from ethereum/reserved-keywords-test
Parser: Add test case for reserved keywords.
2018-03-02 11:41:21 +01:00
chriseth
f78d6a9a1e
Merge pull request #3628 from ethereum/literalsHexUnit
Deprecate using unit denominations in combination with hex numbers.
2018-03-02 11:11:16 +01:00
Daniel Kirchner
0f64648203 Parser: Add test case for reserved keywords. 2018-03-02 10:45:28 +01:00
Alex Beregszaszi
5a54cd5c70 Only warn for shift instructions if not using constantinople 2018-03-01 17:19:35 +01:00
chriseth
982476f99d Add TangerineWhistle. 2018-03-01 17:19:35 +01:00
chriseth
7b0272ccfb CREATE2 test fix. 2018-03-01 17:19:35 +01:00
chriseth
1e26011d2c Returndatasize and staticcall test fixes. 2018-03-01 17:19:35 +01:00
chriseth
05cc5f22b2 Correctly set evm version in tests 2018-03-01 17:19:35 +01:00
chriseth
739533e9c7 Activate byzantium for testing. 2018-03-01 17:19:35 +01:00
chriseth
dc317a44e0 Provide EVM version to assembly analysis. 2018-03-01 17:19:35 +01:00
chriseth
a53d6b499d Use EVM version in type checker. 2018-03-01 17:19:35 +01:00
chriseth
f2f61f1c2f Test both EVM versions. 2018-03-01 17:19:35 +01:00
chriseth
60f7be5d4c Some tests. 2018-03-01 17:19:35 +01:00
Daniel Kirchner
bd4c2b9bde Deprecate using unit denominations in combination with hex numbers. Closes #3574. 2018-03-01 16:58:55 +01:00
chriseth
7540763196 Tests for multi-dimensional arrays. 2018-03-01 14:28:27 +01:00
Alex Beregszaszi
b6dfd9ef54 Ensure that library addresses supplied are of correct length and hex prefixed in JSONIO 2018-03-01 12:03:56 +01:00
chriseth
9e3da89a7a
Merge pull request #3607 from izgzhen/complain-unknown-params
stop allow_guessing for command line option parser
2018-02-28 17:42:14 +01:00
chriseth
7938339572
Merge pull request #3617 from ethereum/jsonio-libraries
Add more comprehensive tests and checks for libraries in JSONIO
2018-02-28 17:40:29 +01:00
chriseth
fb8c4bd7c2
Merge pull request #3615 from ethereum/test-framework
Simplify contract compilation in the test framework
2018-02-28 16:35:22 +01:00
chriseth
22d26e059c
Merge pull request #3613 from ethereum/require-visibility
Issue error if no visibility is specified (on 0.5.0)
2018-02-28 16:33:39 +01:00
Alex Beregszaszi
7897301b71 Properly validate invalid hex characters in JSONIO libraries 2018-02-28 10:44:48 +01:00
Alex Beregszaszi
83fec0232d Add more comprehensive tests and checks for libraries in JSONIO 2018-02-28 10:36:07 +01:00
Zhen Zhang
5fd9ea4b2a Stop allow_guessing for command line option parser 2018-02-28 09:31:24 +08:00
Alex Beregszaszi
0346f72342 Use compileContract in contract tests 2018-02-27 20:08:24 +01:00
Alex Beregszaszi
029e19983c Split compileContract off compileAndRunWithoutCheck in SolidityExecutionFramework 2018-02-27 20:08:24 +01:00
chriseth
908b46e9a7
Merge pull request #3476 from ethereum/scoping
C99/C++ scoping rules
2018-02-27 17:06:10 +01:00
Alex Beregszaszi
a566825589 Issue error if no visibility is specified (on 0.5.0) 2018-02-27 16:31:53 +01:00
Alex Beregszaszi
2abc5be7e6
Merge pull request #2541 from ethereum/asm-bitshift
Add bit shifting opcodes (EIP145)
2018-02-27 14:47:07 +01:00
Alex Beregszaszi
6512bfbcea
Merge pull request #3601 from ethereum/circleParallel
Parallelize tests on circle.
2018-02-27 13:54:45 +01:00
Alex Beregszaszi
73c5d99bfa Add basic test for shift opcodes 2018-02-27 13:43:04 +01:00
chriseth
d64aa0eaad Some more scoping tests. 2018-02-27 12:41:32 +01:00
chriseth
88a5c66f4a Only active variables at the point of their declaration. 2018-02-27 12:17:25 +01:00
chriseth
6b9dda06f3 Enable C99-scoping with the 0.5.0-experimental pragma. 2018-02-27 12:17:25 +01:00
chriseth
0005990382 Tests for new scoping behaviour. 2018-02-27 12:17:25 +01:00
chriseth
69f5f2eb65 Adjust tests. 2018-02-27 12:17:25 +01:00
chriseth
6a83beaab5 Run tests in parallel on circle. 2018-02-27 12:08:27 +01:00
Alex Beregszaszi
5c0d82059f Turn throw into a syntax error for 0.5.0 2018-02-27 02:10:24 +01:00
Alex Beregszaszi
b62d43912b
Merge pull request #3589 from ethereum/identifiers
Clean up type identifiers
2018-02-26 20:27:26 +01:00
Alex Beregszaszi
0736d91eaa Add test for escapeIdentifier 2018-02-26 19:09:44 +01:00
chriseth
8ae6a76c58 Test data location of getter return type. 2018-02-26 11:17:32 +01:00
Alex Beregszaszi
4d1b969543 Use readStandardInput in the fuzzer 2018-02-23 09:05:04 +01:00
chriseth
b5a3b6a429 Parser test. 2018-02-22 15:17:43 +01:00
chriseth
ad010f557b Tests for warnings. 2018-02-22 15:17:43 +01:00
chriseth
388718b59f Introduce emit statement. 2018-02-22 15:17:30 +01:00
chriseth
c182284d28 Do not warn about analysis-only experimental features. 2018-02-22 14:50:20 +01:00
Alex Beregszaszi
ae02bb5aad Raise error on oversized number literals in assembly 2018-02-22 01:02:19 +01:00
chriseth
98324d6c89
Merge pull request #3555 from ethereum/libraryTestCallInput
Provide proper input for test call.
2018-02-21 17:23:41 +01:00
chriseth
3076a434ba
Merge pull request #3554 from ethereum/reuseScannerOrNot
Expect end of string at end of top-level block for assembly parser.
2018-02-21 00:41:57 +01:00
chriseth
e2bf5de8a2 Expect end of string at end of top-level block for assembly parser. 2018-02-21 00:41:39 +01:00
Alexander Arlt
0f29ac4e56 Add new JSON API for better abstraction and for supporting strict JSON parsing 2018-02-20 21:58:26 +01:00
chriseth
89a8f4096c Provide proper input for test call. 2018-02-20 19:31:26 +01:00
chriseth
3ba8af4fd5 Provide input for two optimizer tests. 2018-02-20 18:03:39 +01:00
chriseth
decfa0eed0 Test aliasing in shadowing. 2018-02-20 13:06:28 +01:00
chriseth
a680cbd474 Test `_offset` for constants in inline assembly. 2018-02-19 19:22:39 +01:00
chriseth
abc23ac608
Merge pull request #3135 from federicobond/formatter-instance
Convert static SourceReferenceFormatter functions to member ones
2018-02-19 17:34:07 +01:00
Emilio Almansi
47a0e374e2 Fix indentation. 2018-02-19 16:45:38 +01:00
Emilio Almansi
ca6957da37 Added property _documentation_ to Function, Event, and Modifier definition classes. 2018-02-19 16:45:38 +01:00
Federico Bond
d7532f7b9c Convert static SourceReferenceFormatter functions to member ones 2018-02-19 15:04:22 +01:00
Alexander Arlt
1d4547ab03 Minor improvement: check sources
- returns error, if "sources" is an array, an empty object or not defined
- Added new test-cases in test/libsolidity/StandardCompiler.cpp
2018-02-16 18:44:46 +01:00
chriseth
2b5a5a8669 Make addmod and mulmod revert if the last argument is zero. 2018-02-15 13:52:17 +01:00
chriseth
e08a206070 Disallow uninitialized storage pointers as experimental 0.5.0 feature. 2018-02-15 11:58:50 +01:00
chriseth
23484ba6a4
Merge pull request #3498 from ethereum/allowthisfselector
Allow `this.f.selector` to be pure.
2018-02-13 17:08:35 +01:00
Balajiganapathi S
8a491c77ba Restructure code for alternative identifier suggestions 2018-02-13 15:00:15 +00:00
Balajiganapathi S
d123e777d3 Add tests for similarity routine 2018-02-13 14:59:36 +00:00
Balajiganapathi S
b1417b318f Move string distance function to utils and format error message 2018-02-13 14:59:33 +00:00
Balajiganapathi S
2859834e58 Suggest alternatives when identifier not found. 2018-02-13 14:54:36 +00:00
chriseth
aea9e7fe54 Add tests for selectors for public variables. 2018-02-13 14:15:02 +01:00
Alex Beregszaszi
8f8ad3840e
Merge pull request #3349 from federicobond/number-improv
Avoid output messages size blow-up using huge bignums literals
2018-02-13 12:36:05 +00:00
chriseth
560fbd0df1 Always use shortened literal number representation. 2018-02-13 11:43:47 +01:00
chriseth
5916cf1e0a Allow this.f.selector to be pure. 2018-02-13 11:00:59 +01:00
chriseth
729c6a95f8
Merge pull request #3425 from jevogel/3301
Deprecate the var keyword in SyntaxChecker
2018-02-13 08:40:41 +01:00
chriseth
a75d4ec60e
Merge pull request #2818 from ethereum/testGnosis
Also test gnosis contracts.
2018-02-13 08:38:55 +01:00
Alex Beregszaszi
4876842f69 Replace fixed-version pragmas in Gnosis 2018-02-12 23:26:07 +00:00
chriseth
9956d1dd7b Also test Gnosis contracts. 2018-02-12 23:26:03 +00:00
Federico Bond
a320ffeafd Avoid output messages size blow-up using huge bignums literals 2018-02-12 22:53:33 +00:00
chriseth
1e09d6ba7b Test for Mod-And rule. 2018-02-12 22:47:04 +00:00
Alex Beregszaszi
954903b505
Merge pull request #3489 from ethereum/fixZepplein
Fix some weird zeppelin tests.
2018-02-12 22:44:13 +00:00
Alex Beregszaszi
573aa01fd2 Adjust tests for multiple errors with the var keyword 2018-02-12 22:39:42 +00:00
Alex Beregszaszi
3ddbf1617f Do not use var where not neccessary in tests 2018-02-12 22:37:35 +00:00
chriseth
8795036919
Merge pull request #3479 from ethereum/multiError
Support searching inside multiple errors.
2018-02-12 22:20:58 +01:00
chriseth
2ce2f08742 Fix some weird zeppelin tests. 2018-02-12 21:17:58 +00:00
chriseth
676cf52264 Support searching inside multiple errors. 2018-02-12 16:41:31 +01:00
Alex Beregszaszi
69e2f497ba
Merge pull request #3474 from ethereum/circle2
Split emscripten circle job into build and test.
2018-02-12 10:13:27 +00:00
Federico Bond
75a3a707a2 Fix segfault with undeclared array types 2018-02-11 21:40:41 -03:00
chriseth
937f16afef Handle version for solcjs tests. 2018-02-09 18:24:12 +01:00
chriseth
981ff308ec Split solcjs and external tests. 2018-02-09 18:24:12 +01:00
chriseth
9b61fb2e99
Merge pull request #3456 from ethereum/simplifier
Use simplification rules also for IULIA
2018-02-08 16:50:17 +01:00
chriseth
9429e18dda Fix tests for old precompiler. 2018-02-07 19:23:47 +01:00
chriseth
5523296eaa Also apply simplification rules that require multiple identical sub-expressions. 2018-02-06 22:51:30 +01:00
chriseth
f7392cc698 Tests. 2018-02-06 22:51:30 +01:00
chriseth
9eea3f29ba Expression simplifier. 2018-02-06 22:51:30 +01:00
chriseth
d7863e2054 Test about recursively calling functions. 2018-02-06 14:50:39 +00:00
chriseth
a7ae7c6d04 Tests for functional inliner. 2018-02-06 14:50:39 +00:00
chriseth
e7ef227226 Function inliner. 2018-02-06 14:50:33 +00:00
chriseth
4bd9bcbc77 Tests for inlinable function filter. 2018-02-06 14:48:47 +00:00
chriseth
c0abddc9dc Test for self-referring assignment. 2018-02-06 12:58:51 +01:00
chriseth
669b63ca5f Test not to remat if the expression is too large. 2018-02-06 12:38:32 +01:00
chriseth
773be40c19 Reassign test for remat. 2018-02-06 12:38:32 +01:00
chriseth
e100af592b Fix for rematerializer. 2018-02-06 12:31:43 +01:00
chriseth
22c4d282aa Only substitute if all referenced variables are in scope. 2018-02-06 12:31:43 +01:00
chriseth
30e6f69bfd Tests for rematerialiser. 2018-02-06 12:31:43 +01:00
Alex Beregszaszi
33b27258e4 Add more tests for UnusedPruner 2018-02-06 10:15:41 +00:00
Alex Beregszaszi
2cbbe58281 Support variable declarations without assignment in UnusedPruner 2018-02-06 10:07:00 +00:00
chriseth
b0407cfac0 Unused variable and function remover. 2018-02-05 16:43:39 +00:00
Alex Beregszaszi
32300ea3ff
Merge pull request #3360 from federicobond/nonfatal-reference-errors
Replace some fatal errors when resolving references with normal ones
2018-02-04 13:07:55 +00:00
Federico Bond
aef9518039 Add more test cases for reference resolving error handling 2018-02-02 14:09:32 -03:00
Federico Bond
600e66e605 Replace some fatal errors when resolving references with normal ones 2018-02-02 14:09:32 -03:00
Alex Beregszaszi
b545987ec7 Issue warning for using public visibility for interface functions 2018-02-01 10:28:00 +00:00
chriseth
6807010dc7 Prevent libraries from being called. 2018-01-19 16:27:44 +01:00
Alex Beregszaszi
8b20a7cd53 Disallow non-functional instructions in parseExpression early 2018-01-10 14:16:46 +01:00
Alex Beregszaszi
42f8875770 Show restricted instruction warning before argument mismatch issue 2018-01-08 00:39:22 +00:00
chriseth
767052f2f7 Tests for strict mode. 2018-01-06 03:28:21 +00:00
chriseth
124190336b Split inline assembly into loose and strict flavours. 2018-01-06 01:23:38 +00:00
chriseth
bca01f8f68
Merge pull request #3382 from ethereum/julia-identifier-parser
Support some restricted tokens (return, byte, address) as identifier in Julia
2018-01-06 00:02:21 +01:00
Alex Beregszaszi
a91393f4d7 Support some restricted tokens (return, byte, address) as identifiers in Julia 2018-01-05 15:53:49 +00:00
Alex Beregszaszi
9e7e312fdf Properly support library file names containing a colon (such as URLs). 2018-01-05 13:24:07 +00:00
Leonardo Alt
d0abc5359b [SMTChecker] Variables are merged after branches (ite variables) 2018-01-04 18:20:12 +01:00
chriseth
7f4cf00f1b Provide easy way to update source location expectation. 2018-01-04 14:29:03 +01:00
Alex Beregszaszi
2cdd789b5d
Merge pull request #3297 from ethereum/separate_expression_and_statement
Separate expression and statement
2018-01-04 12:04:19 +00:00
Alex Beregszaszi
8901b38959
Merge pull request #3369 from ethereum/jsonio-colon
Properly handle colons in file names within jsonio
2018-01-04 11:58:29 +00:00
Federico Bond
a0771691ff Improve error message for wrong struct initialization (#3359) 2018-01-04 11:24:39 +01:00
Alex Beregszaszi
ff9fdfac57 Properly handle colons in file names within jsonio 2018-01-03 15:44:03 +00:00
Alex Beregszaszi
fdbe78a769 Remove truffle patching introducing in f77480c as upstream has merged the changes (#3370) 2018-01-03 15:32:08 +01:00
Alex Beregszaszi
55752db956
Merge pull request #3342 from ethereum/jsonio-sourcelocation
Populate the sourceLocation field properly in standard JSON on errors
2017-12-18 14:32:23 +00:00
chriseth
dbad74ac1b
Merge pull request #3279 from ethereum/function_hoister
Function hoister
2017-12-18 15:08:13 +01:00
chriseth
97100516a7
Merge pull request #3331 from ethereum/instruction_mover
Function Grouper
2017-12-18 14:57:12 +01:00
Alex Beregszaszi
add4cde68c Populate the sourceLocation field properly in standard JSON on errors 2017-12-18 12:17:51 +00:00
chriseth
99c8ed075e Function hoister. 2017-12-14 17:28:29 +01:00
chriseth
a6a64eb8ed Function grouper. 2017-12-14 17:21:01 +01:00
chriseth
3d1830f3f2
Merge pull request #3232 from ethereum/simplifyConstant
Simplify ConstantEvaluator.
2017-12-14 16:14:46 +01:00
chriseth
ca0d244bf7 Adjust tests. 2017-12-13 12:28:15 +01:00
Yoichi Hirai
14707b27e2
Merge pull request #3183 from federicobond/fix-event-parsing
Fix event parsing. Refs #3175
2017-12-12 11:12:18 +01:00
chriseth
48c7ba72f3 Simplify ConstantEvaluator. 2017-12-12 09:44:18 +00:00
Alex Beregszaszi
7ff9a85592 Reduce the types of errors outputted by ConstantEvaluator 2017-12-12 09:40:29 +00:00
Alex Beregszaszi
5226d54ed1 Improve error message for constant evaluator 2017-12-12 09:39:26 +00:00
Alex Beregszaszi
1734d44561 Rename jsonCompiler to libsolc 2017-12-11 12:49:08 +00:00
Alex Beregszaszi
b32d7a84fc Move some struct tests to require ABIEncoderV2 2017-12-11 02:42:09 +00:00
Alex Beregszaszi
d57afb20fa Fix warning test for jumps in assembly 2017-12-05 20:27:50 +00:00
Alex Beregszaszi
bc875f6b9c Warn for assembly labels too 2017-12-05 19:27:12 +00:00
chriseth
b582420b5f
Merge pull request #3219 from ethereum/disambiguator
Iulia disambiguator.
2017-12-05 14:42:20 +01:00
chriseth
30d7afc2e3 Simplify disambiguator. 2017-12-05 12:09:55 +01:00
chriseth
cba58629d2 Refactor iulia tests. 2017-12-05 12:09:55 +01:00
chriseth
861210f543 Disambiguator. 2017-12-05 12:09:52 +01:00
chriseth
6d609557b6 Fix test. 2017-12-04 12:57:36 +01:00
chriseth
00e252a39f Another test for division. 2017-11-30 01:20:21 +01:00
chriseth
19e067465a Unary operators and division. 2017-11-30 01:20:21 +01:00
Alex Beregszaszi
73d25c883f Specify output selection in tests 2017-11-29 20:10:18 +00:00
chriseth
9d8e3ff395 Also test short input for old decoder. 2017-11-29 17:08:44 +01:00
chriseth
5a3dbb0269 Cleanup and overflow checks for data pointers. 2017-11-29 17:08:44 +01:00
chriseth
98c38108e8 Decoder tests. 2017-11-29 17:08:44 +01:00
chriseth
f77480cd88 Patch truffle to ignore pre-release compiler warning. 2017-11-27 17:13:25 +01:00
chriseth
a1f59cbb17
Merge pull request #3220 from ethereum/IuliaIf
If statement for Iulia / Inline Assembly
2017-11-27 09:02:46 -05:00
chriseth
1d91b65b72 Force condition to be bool in iulia mode. 2017-11-23 18:52:04 +01:00
Federico Bond
14fd647b85 Fix event parsing. Refs #3175 2017-11-22 23:08:12 -03:00
Alex Beregszaszi
ea18bed319
Merge pull request #3235 from ethereum/explicit-tests
Improve expected test errors for some old cases
2017-11-22 17:05:01 +00:00
Alex Beregszaszi
4c50d3f8e1 Improve expected test errors for some old cases 2017-11-22 15:41:07 +00:00
chriseth
9232cd2621 Tests. 2017-11-22 16:27:32 +01:00
chriseth
6dbc34e16e If statement for Iulia / inline assembly. 2017-11-22 16:25:24 +01:00
Kwang Yul Seo
4876c58f91 success(text) -> CHECK_SUCCESS(text)
success(text) does not assert the result. Use CHECK_SUCCESS macro.
2017-11-22 23:07:42 +09:00
chriseth
19d5c42429 For loop. 2017-11-22 02:35:34 +00:00
chriseth
5e2c066778 Test for multi-branches. 2017-11-22 02:35:34 +00:00
chriseth
95a65dc04c Fix boolean constants. 2017-11-22 02:35:34 +00:00
chriseth
90fb14f525 Tests. 2017-11-22 02:35:34 +00:00
chriseth
e5de4a66ed Tests. 2017-11-22 02:35:34 +00:00
Alex Beregszaszi
455e51a608 Improve cyclic constant error message 2017-11-22 02:11:22 +00:00
Balajiganapathi S
d102deaec9 Detect cyclic constant definitions 2017-11-22 02:07:56 +00:00
Balajiganapathi S
c0b4969451 Add more tests for constant var as array lengths 2017-11-22 01:41:50 +00:00
Balajiganapathi S
165857b1d4 Allow constant integer variables as array lengths. 2017-11-22 01:41:46 +00:00
Alex Beregszaszi
53796c0fe8 Add tests for getChecksummedAddress 2017-11-17 00:46:45 +00:00
Alex Beregszaszi
f7249abe28 Extend address checksum tests 2017-11-17 00:46:45 +00:00
Federico Bond
3cd6ac418a Add missing name resolver tests 2017-10-26 14:13:33 -03:00
Alex Beregszaszi
cacc0e4b46 Merge pull request #2607 from federicobond/better-error-output
cmdlineTests: print solc output instead of contract code on error
2017-10-24 12:16:55 +01:00
Boris Kostenko
3c91564dd9 Include modexp precompile in genesis for testing (#3114) 2017-10-24 10:42:48 +01:00
Alex Beregszaszi
dcbcd36be7 Do not use the precompile address 0x05 in the wallet tests (but a randomized address) 2017-10-23 20:20:32 +01:00
Alex Beregszaszi
faa0a662c7 Always create the correct account even if gaps are needed 2017-10-20 14:23:37 +01:00
Alex Beregszaszi
81e9c679c4 Add helper RPCSession::createAccount 2017-10-20 14:23:37 +01:00
Alex Beregszaszi
3a8324266f More detailed errors for invalid array lengths (such as division by zero). 2017-10-20 11:59:18 +01:00
chriseth
4e7d1440ab Merge pull request #3101 from ethereum/compilerstack-header
Remove the reliance on empty contract name equals "last contract" in CompilerStack
2017-10-19 13:43:17 +02:00
chriseth
892c3ef8ef Merge pull request #3111 from ethereum/test-close-failure
Close IPC socket on connect failure
2017-10-19 13:33:40 +02:00
Alex Beregszaszi
362615c9c4 Close IPC socket on connect failure 2017-10-19 11:12:46 +01:00
chriseth
c58d9d2c42 Merge pull request #3106 from ethereum/test-cleanup
Move contract related code to test/contracts
2017-10-19 11:15:49 +02:00
Alex Beregszaszi
10677125ae Turn usage of callcode into an error as experimental 0.5.0 feature 2017-10-19 02:20:30 +01:00
Alex Beregszaszi
4ca160d9fb Move contract related code to test/contracts 2017-10-19 00:12:50 +01:00
Alex Beregszaszi
2ce35b77be Implement CompilerStack.lastContractName() 2017-10-18 23:54:32 +01:00
Alex Beregszaszi
039cc25b1f Always require a contract/sourceName in CompilerStack 2017-10-18 23:32:33 +01:00
Jared Wasinger
9acc2ea711 Add test for each assembly opcode/instruction in LLL 2017-10-18 11:56:52 +01:00
Yoichi Hirai
fda8499c15 Merge pull request #3070 from ethereum/lll-assembly
lll: disallow useless PUSHn in assembly
2017-10-18 12:02:14 +02:00
chriseth
e854da1a8c Merge pull request #2925 from ethereum/tuple-value-check
Validate each tuple literal
2017-10-18 11:59:40 +02:00
chriseth
58139e8613 Adjust tests. 2017-10-18 00:19:36 +02:00
chriseth
a3db1fc197 Do not accept truncated function selectors. 2017-10-17 23:17:36 +02:00
chriseth
8a8a71de84 Only check tuples for valid rational numbers if they have more than one element. 2017-10-17 19:14:49 +02:00
Alex Beregszaszi
c99d2aae04 Validate each tuple literal 2017-10-17 18:59:01 +02:00
chriseth
6001bd1406 Allocate one byte per memory byte array element instead of 32. 2017-10-16 22:29:31 +02:00
chriseth
7989fc4c35 Merge pull request #3077 from ethereum/optimze_pops
Assume peephole optimizer was successful if number of pops increased.
2017-10-16 22:11:45 +02:00
chriseth
082e7b6a9e Allow `gas` in view functions. 2017-10-16 13:28:44 +02:00
chriseth
7c94e5462a Assume peephole optimizer was successful if number of pops increased. 2017-10-13 19:00:56 +02:00
Alex Beregszaszi
15517b571d lll: disallow useless PUSHn in assembly 2017-10-13 02:04:36 +01:00
Yoichi Hirai
c35496bf4a Merge pull request #3038 from ethereum/interface-external
Force interface functions as external (0.5.0)
2017-10-10 12:21:08 +02:00
Alex Beregszaszi
9ee619c9bb Snarks test using Byzantium precompiles
* Snark tests.

* Verifying routine.

* Example proof.

* Update precompiled positions to Byzantium ruleset.
2017-10-09 11:09:20 +02:00
Alex Beregszaszi
c45e55675c Force interface functions as external (0.5.0) 2017-10-06 13:48:38 +01:00
chriseth
094012dbb0 Merge pull request #3036 from ethereum/constant-eval-refactor
Refactor error reporting in ConstantEvaluator
2017-10-06 13:50:15 +02:00
Alex Beregszaszi
c28ed2a619 Add tests for ConstantEvaluator 2017-10-05 20:08:12 +01:00
Federico Bond
ae91510765 Improve cmdline error output 2017-10-05 15:48:14 -03:00
Alex Beregszaszi
b8be060b30 Ensure unused variables are not warned for in interfaces/abstract contracts 2017-10-05 19:31:53 +01:00
Federico Bond
eea88f33aa Use local variables inside bash functions 2017-10-05 15:21:16 -03:00
Federico Bond
cd420dc0bc cmdlineTests: print solc output instead of contract code on error 2017-10-05 15:21:16 -03:00
Alex Beregszaszi
81519845bc Require location keyword for local variables (0.5.0) 2017-10-05 19:02:30 +01:00
chriseth
d0fa56a217 Merge pull request #2981 from ethereum/no-address-overload
Do not add members of address to contracts in experimental 0.5.0
2017-10-05 16:12:21 +02:00
Alex Beregszaszi
8b26d65b62 Merge pull request #3020 from ethereum/smt-functioncall
SMT should not crash on special function calls (typecast)
2017-10-05 14:04:16 +01:00
Alex Beregszaszi
6ba0c2bba8 Merge pull request #2982 from ethereum/encoderFixes
ABI encoder fixes and test.
2017-10-05 11:59:42 +01:00
Alex Beregszaszi
09276cb9d3 Do not add members of address to contracts in experimental 0.5.0 2017-10-05 11:42:34 +01:00
Alex Beregszaszi
10529e994f SMT should not crash on typecast/structs 2017-10-05 11:41:11 +01:00
chriseth
54cf15ac4f Merge pull request #2901 from ethereum/compiler-names
Provide optional list of contract names to CompilerStack.compile
2017-10-05 11:23:46 +02:00
Alex Beregszaszi
f86cd06b97 Add contract depedendency tests to standardcompiler 2017-10-05 09:53:43 +01:00
Alex Beregszaszi
a0394a1bfa Restrict contracts compiled via outputSelection (but not the individual output details) 2017-10-04 20:30:14 +01:00
Federico Bond
76d3d24842 Do not consider shadowing in variable names inside event declarations 2017-10-04 13:30:26 -03:00
chriseth
f6fb7d96d3 Merge pull request #2990 from ethereum/someMoreSMTStuff
Basic SMT tests.
2017-10-04 14:56:24 +02:00
chriseth
30908415bf Merge pull request #3013 from ethereum/evmasm-cleanup
Cleanup instruction / gasmeter
2017-10-04 11:33:16 +02:00
wadeAlexC
73f17876e9 Better error message when using fractional number as array size expressions 2017-10-03 22:01:58 +01:00
Federico Bond
2b82352692 Disallow non-pure constant state variables in 0.5.0 2017-10-03 15:30:16 +01:00
Alex Beregszaszi
4d1c48eeee Remove duplicate EVMSchedule 2017-10-03 11:59:53 +01:00
Alex Beregszaszi
fe947006ff Format chainparams fields properly in tests 2017-10-03 10:45:00 +01:00
Alex Beregszaszi
e7a1e1abe7 Merge pull request #2997 from federicobond/duplicate-events
Emit error when declaring event with same name and arguments twice
2017-10-02 20:21:16 +01:00
Alex Beregszaszi
d010d6300c LLL: Add compiler tests 2017-10-02 12:44:34 +01:00
benjaminion
cafc0885c4 LLL: Tests for the proposed switch expression. 2017-10-02 12:01:15 +01:00
Federico Bond
6d95447955 Emit error when declaring event with same name and arguments twice 2017-09-29 19:17:31 -03:00
Rhett Aultman
e434437eb7 Unary + now a synax error (experimental 0.5.0)
The unary + was deprecated with a warning, but will be elevated to an
error in 0.5.0.  This adds the syntax error for the 0.5.0 pragma, and
for a true 0.5.0 release we should consider removing the operator from
the parser.
2017-09-29 17:50:25 +01:00
Alex Beregszaszi
b1741b7735 Validate array length in type checker 2017-09-29 16:44:00 +01:00
chriseth
5028ccbe84 Tests for SMT checker. 2017-09-29 15:31:00 +02:00
chriseth
a1f3046647 Add SMT tests. 2017-09-29 12:44:39 +02:00
chriseth
08effa0af5 More verbose error messages. 2017-09-29 12:05:45 +02:00
chriseth
9d8edb46f2 Allow test frameworks to filter out some warnings. 2017-09-29 12:05:45 +02:00
Alex Beregszaszi
7cb4d714c7 Fix overload resolution when conflict is with members of address (balance, transfer, etc) 2017-09-28 13:57:19 +01:00
chriseth
acd70557cc Test encoder for empty structs. 2017-09-27 17:55:04 +02:00
chriseth
2940964044 ABI encoder fixes and test. 2017-09-27 15:57:39 +02:00
Alex Beregszaszi
9ea812598d Fix other test to use ABI_CHECK 2017-09-27 00:50:35 +01:00
chriseth
95ec2fd0b6 Fix encoded EndToEnd inputs. 2017-09-25 19:33:38 +02:00
Alex Beregszaszi
a72237f275 Merge pull request #2954 from wadeAlexC/develop
Better message for unexpected trailing commas in parameter lists
2017-09-25 15:36:34 +01:00
chriseth
8e4f242274 Improved error messages for EndToEnd tests. 2017-09-25 10:49:25 +01:00
wadeAlexC
0099911ace Better error message for unexpected trailing comma in parameter lists 2017-09-25 10:42:01 +01:00
chriseth
a844bbda48 Cleanup test helper macros. 2017-09-22 16:17:28 +02:00
chriseth
8af298ade3 Merge pull request #2902 from ethereum/warn-obsolete
Warn about obsolete sha3/suicide calls
2017-09-20 18:00:40 +02:00
Alex Beregszaszi
3b813ed295 Support multiple assignment in inline assembly 2017-09-20 11:16:23 +02:00
Alex Beregszaszi
f958463416 Rename MiniMoustache to Whiskers in tests 2017-09-20 01:23:21 +01:00
Alex Beregszaszi
efa4598c23 Mark functions static 2017-09-20 01:23:21 +01:00
Alex Beregszaszi
1c0c5d923a Mark constructors explicit 2017-09-20 01:23:21 +01:00
Alex Beregszaszi
aad829948a Ensure parameter names match between headers and implementation 2017-09-20 01:23:21 +01:00
Alex Beregszaszi
ed1fd49ab0 Warn about obsolete sha3/suicide calls 2017-09-19 11:11:19 +01:00
Alex Beregszaszi
ada68bcee6 Add tests for constant bytes/strings 2017-09-18 22:25:50 +01:00
chriseth
3a9a9db6d6 Merge pull request #2910 from ethereum/fallback-restrict-external
Force fallback to be external (experimental 0.5.0 change)
2017-09-18 16:38:55 +02:00
Alex Beregszaszi
a3380ea8d0 Force fallback to be external (experimental 0.5.0 change) 2017-09-18 11:58:37 +01:00
chriseth
c001903cdc Fixed tests with mappings in structs and added some more. 2017-09-16 12:31:13 +01:00
chriseth
c5063d3155 Use "tuple" for struct types in ABI JSON.
Only use tuple as a type in the ABI (and remove all "anonymous struct" references too)
2017-09-16 12:31:12 +01:00
chriseth
70d70e7816 Implement struct encoder. 2017-09-16 12:31:12 +01:00
chriseth
6385641f6e Fix tests. 2017-09-16 12:31:12 +01:00
chriseth
44825d1c1e Expect test to fail until implemented. 2017-09-16 12:12:44 +01:00
chriseth
7e1b9c1652 Structure type json using "components". 2017-09-16 12:12:44 +01:00
chriseth
36a90289e6 Fix interface type conversion internal to structs. 2017-09-16 12:12:43 +01:00
chriseth
823e67bf40 Tests for external signatures. 2017-09-16 12:12:43 +01:00
chriseth
080be885f8 Function signatures containing structs. 2017-09-16 12:12:43 +01:00
chriseth
22f85d5af3 Update tests and error messages. 2017-09-16 12:12:43 +01:00
chriseth
2e72bd163a Allow structs as part of function interfaces. 2017-09-16 12:12:43 +01:00
chriseth
73771f5bb2 Named assembly labels. 2017-09-15 20:44:49 +01:00
Alex Beregszaszi
7dd372ce5c Merge pull request #2904 from ethereum/viewPure5
Enforce view with error for experimental 0.5.0.
2017-09-14 18:13:56 +01:00
chriseth
24fd67b7db Enforce view with error for experimental 0.5.0. 2017-09-14 17:53:43 +02:00
Alex Beregszaszi
67f96652f5 Update view/pure tests to contain mandatory visibility specifiers 2017-09-14 16:30:00 +01:00
Alex Beregszaszi
df8380193b Update type tests to contain mandatory visibility specifiers 2017-09-14 16:29:39 +01:00
Alex Beregszaszi
71118e99fe Fix view/pure warnings on selector tests 2017-09-13 18:48:21 +01:00
Alex Beregszaszi
5c9dbd5083 Merge pull request #2473 from ethereum/functiontype-sig
Add .selector member on function types
2017-09-13 17:35:48 +01:00
chriseth
3f3bcc4f8a Merge pull request #2848 from ethereum/checkViewPure
Enforce view and pure.
2017-09-13 18:29:13 +02:00
Alex Beregszaszi
8b166c3636 Use hashing function in tests 2017-09-13 11:40:57 +01:00
Alex Beregszaszi
fd1f8ab38b Rename .sig to .selector on function types 2017-09-13 11:40:57 +01:00
Alex Beregszaszi
88946f9f03 Add tests for function type sigs 2017-09-13 11:40:57 +01:00
Paweł Bylica
622a2d8251
Travis CI: Fix Emscripten build 2017-09-12 22:11:21 +02:00
Suman
10d290cb9b Display helpful warning for unused function arguments/return parameters 2017-09-12 15:35:03 +01:00
Alex Beregszaszi
7ed938b95e Change retrieveContract to take name and not index 2017-09-11 15:58:30 +01:00
chriseth
b756274357 Allow constant variables in pure functions. 2017-09-06 13:52:29 +02:00
chriseth
c83768c426 Fix tests 2017-09-06 13:52:29 +02:00
chriseth
1a1db1ec96 Tone down error message. 2017-09-06 13:52:29 +02:00
chriseth
d6861d909c Analyze assembly. 2017-09-06 13:52:29 +02:00
chriseth
41d0ad7a9c New tests for view and pure checker. 2017-09-06 13:50:49 +02:00
Alex Beregszaszi
50047bf82c Change tests to use view or pure as appropriate 2017-09-06 13:50:49 +02:00
chriseth
311be6b659 Fix warning checking in test framework. 2017-09-06 12:19:11 +02:00
Alex Beregszaszi
3326a2282e Change array too large error message as it is valid for non-calldata too 2017-09-05 22:38:45 +01:00
Alex Beregszaszi
b7e8d305b3 Run fuzzer tests without optimizer too 2017-08-31 00:37:32 +01:00
Alex Beregszaszi
23182c7fdf Add --without-optimizer option to fuzzer 2017-08-31 00:37:29 +01:00
Alex Beregszaszi
6245d9aafc Merge pull request #2846 from ethereum/refactorTests
Extract base from NameAndType and use compiler stack.
2017-08-29 14:27:37 +01:00
Alex Beregszaszi
c861817875 Add header for jsonCompiler 2017-08-29 13:43:55 +01:00
chriseth
4136ff9a59 Extract base from NameAndType and use compiler stack. 2017-08-29 14:05:38 +02:00
Alex Beregszaszi
7fb4a64136 Move all file specific globals to anonymous namespace 2017-08-29 11:09:18 +01:00
Alex Beregszaszi
0e11e5af10 Include all overloaded events in ABI 2017-08-28 20:07:43 +01:00
chriseth
122e65f8f4 Crash fix, parseTypeName can return null. 2017-08-28 15:13:02 +02:00
chriseth
372279ceb2 Merge pull request #2819 from ethereum/compilerstack-typecheck
Simplify typechecking loop in compilerstack
2017-08-25 19:38:15 +02:00
Alex Beregszaszi
8bc76ecf58 Update SolidityNameAndTypeResolution to match CompilerStack 2017-08-25 15:49:33 +01:00
Alex Beregszaszi
f6dba97fe1 Warn on using literals in tight packing 2017-08-25 14:16:50 +01:00
chriseth
1437521df0 Merge pull request #2807 from ethereum/removeABIh
Cleanup: Remove ABI.h
2017-08-25 14:53:30 +02:00
chriseth
bfc7d71f51 Cleanup: Remove ABI.h 2017-08-25 11:57:33 +02:00
chriseth
223235c97e Add test for jumpdest removal. 2017-08-25 10:42:36 +01:00
chriseth
d15526f877 Update tests. 2017-08-25 10:42:36 +01:00
Alex Beregszaszi
deeac7e2e0 Rename statemutability to stateMutability in ABI/AST 2017-08-24 15:23:00 +01:00
Alex Beregszaszi
e9a9a07d94 Add ABI test for pure function 2017-08-24 13:46:18 +01:00
Alex Beregszaszi
5668377c72 Introduce pure specifier on functions 2017-08-24 13:46:18 +01:00
chriseth
8af6f193bc Merge pull request #2770 from ethereum/recursionInAsm
Also prevent too much recursion in the assembly parser.
2017-08-24 11:14:01 +02:00
chriseth
e8d1658b58 Add external tests. 2017-08-23 21:11:03 +01:00
Alex Beregszaszi
3b07c4d38e Merge pull request #2757 from ethereum/cmake
Static linking
2017-08-23 12:36:24 +01:00
Alex Beregszaszi
70bb1e7478 Update tests for view 2017-08-22 18:24:22 +01:00
Alex Beregszaszi
efe4d68a7b Introduce view (and keep constant as an alias) 2017-08-22 18:24:22 +01:00
Alex Beregszaszi
97169e58ae Merge pull request #2734 from ethereum/reject-create-interface
Reject the creation of interface with the new statement
2017-08-22 12:11:37 +01:00
chriseth
692e4c57e8 Check recursion depth in assembly parser. 2017-08-22 12:44:22 +02:00
chriseth
97cb571ba4 Tests for recursion in JULIA. 2017-08-22 12:43:44 +02:00
chriseth
7b0046a9aa Check inheritance specifier arguments for interfaces. 2017-08-22 11:39:50 +01:00
Alex Beregszaszi
2a5772cff7 Mark appropriate constructors explicit 2017-08-22 10:51:46 +01:00
Alex Beregszaszi
b25f0c52ac Reject the creation of interface with the new statement 2017-08-21 23:02:18 +01:00
Alex Beregszaszi
2c2ae74217 Merge pull request #2773 from ethereum/usingForWithoutLibrary
Fix crash related to ``using for`` without a library.
2017-08-21 19:47:57 +01:00
Alex Beregszaszi
4219acaba9 Merge pull request #2771 from ethereum/unused-includes
Remove some unused includes
2017-08-21 16:26:44 +01:00
chriseth
ec82706396 Fix crash related to `using for` without a library. 2017-08-21 16:57:37 +02:00
chriseth
d270879c8f Merge pull request #2748 from ethereum/natspec
Remove DocumentationType from natspec
2017-08-21 16:46:00 +02:00
chriseth
01b4bba0ed Merge branch 'develop' into library-constructor 2017-08-21 16:34:59 +02:00
Alex Beregszaszi
b3986f1d07 Remove some unused includes 2017-08-21 14:08:58 +01:00
chriseth
2c5985de06 Be more strict about number literals in assembly. 2017-08-21 13:31:28 +02:00
Paweł Bylica
99d198ffb0
CMake: Make libs dependencies explicit 2017-08-21 12:27:06 +02:00
Alex Beregszaszi
fe25bcf350 Library cannot have constructors 2017-08-21 11:03:55 +01:00
Paweł Bylica
397a72107a
CMake: Simplify test tools config 2017-08-18 13:32:36 +02:00