 r0qsandKamil Śliwak
|
e3b36f736d
|
Avoid sorting FunctionDefinitions by AST ID during codegen
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
|
2023-09-26 14:02:00 +02:00 |
|
Nikola Matic
|
ce423e5ae5
|
Purge using namespace std from libsolidity/codegen
|
2023-08-14 21:37:31 +02:00 |
|
Kamil Śliwak
|
b7d2c8bb0a
|
SourceReferenceFormatter: Line wrapping and unused includes
|
2023-08-11 14:15:56 +02:00 |
|
Daniel Kirchner
|
5c7214cbe3
|
Always generate code for .selector member access.
|
2023-07-18 18:15:32 +02:00 |
|
Kamil Śliwak
|
490b90d0ab
|
Implement ImmutableItem::setToZero() to make delete work with immutables
|
2023-07-14 15:29:32 +02:00 |
|
Kamil Śliwak
|
5b70830a64
|
IRGeneratorForStatements: Small refactor in endVisit(IndexAccess) for readability
|
2023-07-13 11:07:40 +02:00 |
|
Kamil Śliwak
|
16220db759
|
IRGeneratorForStatements: Fix undefined order of functions when generating code for index expressions
|
2023-07-13 11:06:11 +02:00 |
|
Kamil Śliwak
|
b1a773be2f
|
IRGenerator: Leave IR optimization up to the caller to avoid unnecessarily doing it twice
|
2023-06-07 19:44:40 +02:00 |
|
GiokaMarkella
|
28a1abf89a
|
Yul AST output on the CLI and in Standard JSON
|
2023-05-26 12:35:31 +02:00 |
|
Nikola Matic
|
3bab14747e
|
Fix hidden-overload in Types and remove CMake hack
|
2023-05-09 19:33:23 +02:00 |
|
 
|
a29f77369a
|
Move AST annotation of internal function dispatch IDs to ContractDefinition
Co-authored-by: Daniel <daniel@ekpyron.org>
Co-authored-by: Nikola Matić <nikola.matic@ethereum.org>
|
2023-05-06 20:31:27 +02:00 |
|
Kamil Śliwak
|
8a14680851
|
Disallow unary plus at the parsing stage
|
2023-04-18 16:47:00 +02:00 |
|
 Rodrigo Q. SaramagoandDaniel
|
a0e62bbd3d
|
Annotate function ID of functions that may be called via the internal dispatch.
Co-authored-by: Daniel <daniel@ekpyron.org>
|
2023-03-20 20:14:41 +01:00 |
|
wechman
|
1a83fa7ebc
|
User-defined operators: Code generation
|
2023-02-22 00:39:25 +01:00 |
|
chriseth
|
07750ea23a
|
More aggressive runtime code exclusion.
|
2023-02-15 21:33:06 +01:00 |
|
Peter Lemenkov
|
603f9f7208
|
Type recognition workaround for some GCC compilers
Looks like somewhat old GCC compilers, namely 12.2.1, cannot recognize a
string literal sometimes. Let's help it to avoid error logs like this
one:
```
[ 75%] Building CXX object libsolidity/CMakeFiles/solidity.dir/codegen/ir/IRGeneratorForStatements.cpp.o
cd /builddir/build/BUILD/solidity-0.8.18/redhat-linux-build/libsolidity && /usr/bin/g++ -DBOOST_ATOMIC_DYN_LINK -DBOOST_ATOMIC_NO_LIB -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_FILESYSTEM_NO_LIB -DBOOST_SYSTEM_DYN_LINK -DBOOST_SYSTEM_NO_LIB -DFMT_HEADER_ONLY=1 -DHAVE_CVC4 -DHAVE_Z3 -I/builddir/build/BUILD/solidity-0.8.18/redhat-linux-build/include -I/builddir/build/BUILD/solidity-0.8.18 -isystem /usr/include/z3 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fuse-ld=gold -O3 -DNDEBUG -fstack-protector-strong -Wimplicit-fallthrough -fmacro-prefix-map=/builddir/build/BUILD/solidity-0.8.18=/solidity -Wpessimizing-move -Wredundant-move -Wall -Wextra -Werror -pedantic -Wmissing-declarations -Wno-unknown-pragmas -Wsign-conversion -Wconversion -Wextra-semi -Wduplicated-cond -Wlogical-op -fdiagnostics-color -std=c++17 -MD -MT libsolidity/CMakeFiles/solidity.dir/codegen/ir/IRGeneratorForStatements.cpp.o -MF CMakeFiles/solidity.dir/codegen/ir/IRGeneratorForStatements.cpp.o.d -o CMakeFiles/solidity.dir/codegen/ir/IRGeneratorForStatements.cpp.o -c /builddir/build/BUILD/solidity-0.8.18/libsolidity/codegen/ir/IRGeneratorForStatements.cpp
In file included from /usr/include/c++/12/string:40,
from /builddir/build/BUILD/solidity-0.8.18/libsolidity/ast/ASTForward.h:27,
from /builddir/build/BUILD/solidity-0.8.18/libsolidity/ast/AST.h:26,
from /builddir/build/BUILD/solidity-0.8.18/libsolidity/ast/ASTVisitor.h:26,
from /builddir/build/BUILD/solidity-0.8.18/libsolidity/codegen/ir/IRGeneratorForStatements.h:24,
from /builddir/build/BUILD/solidity-0.8.18/libsolidity/codegen/ir/IRGeneratorForStatements.cpp:22:
In function 'std::char_traits<char>::copy(char*, char const*, unsigned long)',
inlined from 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_copy(char*, char const*, unsigned long)' at /usr/include/c++/12/bits/basic_string.h:423:21,
inlined from 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long)' at /usr/include/c++/12/bits/basic_string.tcc:532:22,
inlined from 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(char const*)' at /usr/include/c++/12/bits/basic_string.h:1647:19,
inlined from 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(char const*)' at /usr/include/c++/12/bits/basic_string.h:815:28,
inlined from '(anonymous namespace)::CopyTranslate::translateReference(solidity::yul::Identifier const&)' at /builddir/build/BUILD/solidity-0.8.18/libsolidity/codegen/ir/IRGeneratorForStatements.cpp:182:13:
/usr/include/c++/12/bits/char_traits.h:431:56: error: 'memcpy' accessing 9223372036854775810 or more bytes at offsets -4611686018427387902 and [-4611686018427387903, 4611686018427387904] may overlap up to 9223372036854775813 bytes at offset -3 [-Werror=restrict]
431 | return static_cast<char_type*>(__builtin_memcpy(__s1, __s2, __n));
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
gmake[2]: *** [libsolidity/CMakeFiles/solidity.dir/build.make:695: libsolidity/CMakeFiles/solidity.dir/codegen/ir/IRGeneratorForStatements.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[2]: Leaving directory '/builddir/build/BUILD/solidity-0.8.18/redhat-linux-build'
gmake[1]: *** [CMakeFiles/Makefile2:414: libsolidity/CMakeFiles/solidity.dir/all] Error 2
gmake[1]: Leaving directory '/builddir/build/BUILD/solidity-0.8.18/redhat-linux-build'
gmake: *** [Makefile:139: all] Error 2
```
Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
|
2023-02-08 17:51:56 +01:00 |
|
   
|
ef6ff2f055
|
Adds support for the EVM version "Paris".
Deprecates `block.difficulty` and disallow `difficulty()` in inline assembly for EVM versions >= paris.
The change is due to the renaming introduced by EIP-4399 (see: https://eips.ethereum.org/EIPS/eip-4399).
Introduces `block.prevrandao` in Solidity and `prevrandao()` in inline assembly for EVM versions >= paris.
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
Co-authored-by: Daniel <daniel@ekpyron.org>
Co-authored-by: matheusaaguiar <95899911+matheusaaguiar@users.noreply.github.com>
Co-authored-by: Nikola Matić <nikola.matic@ethereum.org>
|
2023-01-23 18:50:36 +00:00 |
|
wechman
|
64a4f32bc2
|
Consistent terminology for attached/bound functions
|
2022-12-07 19:31:41 +01:00 |
|
 Daniel KirchnerandKamil Śliwak
|
bf26d3be5a
|
Add experimental EOF options for CLI and Standard JSON.
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
|
2022-11-23 19:53:44 +01:00 |
|
Alexander Arlt
|
b7abcb25ae
|
[libevmasm] Add Assembly::OptimiserSettings::translateSettings.
|
2022-10-26 14:11:59 +02:00 |
|
Alex Beregszaszi
|
725253551e
|
Improve FunctionSelector helpers
|
2022-09-27 17:58:32 +02:00 |
|
Nikola Matic
|
f6f0d6a360
|
Make hardcoded parts of the optimizer sequence configurable
|
2022-09-12 10:57:36 +02:00 |
|
Damian Wechman
|
6b99162457
|
Merge pull request #13406 from ethereum/slot_on_reference_fix
Fix `.slot` accessing via mapping reference in assembly
|
2022-09-05 14:00:18 +02:00 |
|
Marenz
|
f7cc29bec1
|
Add std:: qualifier to move() calls
|
2022-08-30 11:12:15 +02:00 |
|
wechman
|
cf3bae0839
|
Fix "slot" access via mapping reference in assembly
|
2022-08-17 07:53:52 +02:00 |
|
Matheus Aguiar
|
2282ea5e56
|
Added overflow checks after multiplication operation is executed.
|
2022-08-12 10:18:05 -03:00 |
|
 MarenzandKamil Śliwak
|
22c7cd22b9
|
Fix wrong cleanup when copying from calldata to memory
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
|
2022-08-08 13:07:16 +02:00 |
|
Ishtiaque Zahid
|
3e70a406af
|
fixed wrong tab alignment in YulUtilFunctions.h
|
2022-08-03 12:33:11 +06:00 |
|
Matheus Aguiar
|
4fd5c11af7
|
Checks for overflow/underflow after add/sub operations.
|
2022-06-23 14:41:12 -03:00 |
|
Daniel Kirchner
|
4c84b77a4b
|
Review suggested renaming.
|
2022-06-16 15:05:21 +02:00 |
|
Daniel Kirchner
|
cdf243a9af
|
Improved array copy routine for value type arrays from memory or calldata to storage.
|
2022-06-16 15:05:21 +02:00 |
|
Daniel Kirchner
|
7a84e9c875
|
Bugfix.
|
2022-06-14 18:26:16 +02:00 |
|
Saw-mon-and-Natalie
|
a265d9968a
|
removed a duplicate word from a comment.
|
2022-06-13 17:38:43 -07:00 |
|
chriseth
|
51ef6a62da
|
Fix removal of memory stores in inline assembly blocks.
|
2022-06-10 17:32:28 +02:00 |
|
chriseth
|
f0e43921f7
|
Merge pull request #12921 from ethereum/add_event_and_error_selector_fields_on_the_line_of_function_selector_field
Adding event and error selector fields
|
2022-05-23 11:34:13 +02:00 |
|
chriseth
|
30335c13ff
|
Merge pull request #13001 from matheusaaguiar/develop
Don't add an empty data slot to ABI-encoded empty strings from storage
|
2022-05-23 10:56:30 +02:00 |
|
nishant-sachdeva
|
d4c06d2b4e
|
Adding event and error selector fields on the lines of the function selector fields
|
2022-05-23 10:49:16 +02:00 |
|
Daniel Kirchner
|
953bc9fed2
|
Merge pull request #12983 from ethereum/hint-via-ir
Recommend `via-ir` whenever a stack too deep error is encountered.
|
2022-05-20 12:26:25 +02:00 |
|
Matheus Aguiar
|
33ea6a679d
|
Fixed bug that added a superfluous empty slot for data when encoding an empty string coming from storage.
Added tests covering empty string, uninitialized string, emptry string literal, byte arrays and explicit call to `abi.encode`.
|
2022-05-18 14:50:26 -03:00 |
|
Daniel Kirchner
|
d3a837b340
|
Bugfix.
|
2022-05-11 18:17:47 +02:00 |
|
hrkrshnn
|
5ae17c8e65
|
Recommend via-ir whenever a stack too deep error is encountered.
|
2022-05-05 19:22:03 +02:00 |
|
Joshua Quinones
|
e1a59397c6
|
Renamed AssemblyStack to YulStack
All files, references, variables, comments, etc. were renamed to YulStack.
|
2022-04-08 20:28:55 +02:00 |
|
Daniel Kirchner
|
8cb01a9953
|
Fix and updated test.
|
2022-03-15 10:23:09 +01:00 |
|
Daniel Kirchner
|
e58c0b561d
|
Mark viaIR code generation as non-experimental.
|
2022-03-14 14:48:00 +01:00 |
|
Tyler
|
047034544e
|
Merge branch 'develop' of github.com:tfire/solidity into fix/remove-namespace-ast-annotations
|
2022-03-09 18:55:22 -05:00 |
|
Daniel Kirchner
|
e0c837b33b
|
Remove isCreation flag from OptimiserSettings.
|
2022-03-09 17:53:28 +01:00 |
|
Daniel Kirchner
|
ce0a3e93f2
|
Store whether an evmasm Assembly is creation code.
|
2022-03-09 17:42:29 +01:00 |
|
Tyler
|
519e1c9402
|
Specify namespaces
Fix references into solidity::util
|
2022-03-08 00:09:17 -05:00 |
|
chriseth
|
77c40cd2af
|
Merge pull request #12740 from ethereum/remove-locale-dependent-operations
Replace all locale-dependent operations with locale-agnostic counterparts
|
2022-03-07 17:56:58 +01:00 |
|
wechman
|
52dfccca98
|
Replace all locale-dependent operations with locale-agnostic counterparts
|
2022-03-07 17:23:08 +01:00 |
|