Kamil Śliwak
|
bd6a36dca3
|
Remove EVMAssemblyStack from CompilerStack
|
2023-04-21 23:28:42 +02:00 |
|
Kamil Śliwak
|
68d4bfe11f
|
Introduce AbstractAssemblyStack as an interface to functionality common for both CompilerStack and EVMAssemblyStack
|
2023-04-21 23:28:42 +02:00 |
|
Kamil Śliwak
|
5e507aa909
|
fixup! [libevmasm] Add support to import evm assembly json.
|
2023-04-21 23:28:42 +02:00 |
|
Kamil Śliwak
|
7abceeabde
|
fixup! [libevmasm] Add support to import evm assembly json.
|
2023-04-21 14:14:22 -05:00 |
|
Alexander Arlt
|
a109d50a4f
|
[libevmasm] Add support to import evm assembly json.
|
2023-04-21 14:13:37 -05:00 |
|
Kamil Śliwak
|
f5b2044ed1
|
Remove unused CompilerStack::m_sourceJsons
|
2023-04-20 20:01:45 +02:00 |
|
Alexander Arlt
|
611e02c038
|
Rename assemble() to assembleYul() in CompilerStack and CommandLineInterface
|
2023-04-20 20:01:45 +02:00 |
|
Kamil Śliwak
|
ded9ef17e8
|
Misc small refactors: Use ranges::views::keys and fmt::format()
|
2023-04-20 20:01:45 +02:00 |
|
Alexander Arlt
|
2f78e9549a
|
Misc small refactors: Superfluous std::, trailing commas in lists, whitespace, missing breaks, import order
|
2023-04-20 19:53:48 +02:00 |
|
Daniel
|
a77d4e281f
|
Merge pull request #14139 from ethereum/make-plus-binary-only
Make plus binary only (second attempt)
|
2023-04-18 21:20:31 +02:00 |
|
Matheus Aguiar
|
64f57ac3c7
|
Fix null dereference in using for directive when operator name is empty
|
2023-04-18 14:23:58 -03:00 |
|
Kamil Śliwak
|
b85a95f52d
|
Refactor TokenTraits::isUnaryOp() not to treat + as a unary operator
|
2023-04-18 16:49:31 +02:00 |
|
Kamil Śliwak
|
8a14680851
|
Disallow unary plus at the parsing stage
|
2023-04-18 16:47:00 +02:00 |
|
Nikola Matić
|
8194acb3b7
|
Merge pull request #14119 from veniger/natspec-struct
Adds NatSpec to AST for struct definitions.
|
2023-04-18 16:05:20 +02:00 |
|
Marko Veniger
|
07def48f45
|
Adds NatSpec to AST for struct definitions.
|
2023-04-18 13:10:21 +02:00 |
|
Alex Beregszaszi
|
3edcfce478
|
Add warning for EIP-3860 enforced initcode limits
|
2023-04-15 13:43:05 +02:00 |
|
Kamil Śliwak
|
593e207094
|
Merge pull request #14104 from ethereum/extract-parse-literal
Refactor literal parsing before adding suffixes
|
2023-04-12 14:52:04 +02:00 |
|
Daniel
|
6bc6ae94a6
|
Merge pull request #14050 from ethereum/contract-ast-internal-function-ids
Annotate internal function IDs
|
2023-04-12 14:11:39 +02:00 |
|
Kamil Śliwak
|
c1fffa892d
|
Parser: Extract literal parsing into a separate function
|
2023-04-12 12:30:05 +02:00 |
|
Kamil Śliwak
|
9020efec58
|
Merge pull request #14087 from ethereum/better-error-for-invalid-call
Better error message when trying to call things that are not functions
|
2023-04-05 17:38:10 +02:00 |
|
Christian Parpart
|
be8752b5d3
|
Adds natspec to AST for enum definition.
|
2023-04-05 14:58:32 +02:00 |
|
Kamil Śliwak
|
a019f400d0
|
Better error message when trying to call things that are not functions
|
2023-04-04 17:30:37 +02:00 |
|
Kamil Śliwak
|
293690e5a4
|
Add util::capitalized() and Type::categoryName()
|
2023-04-04 17:30:37 +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 |
|
Leo Alt
|
aacbe72079
|
group unsupported warnings
|
2023-03-15 17:06:06 +01:00 |
|
Leo Alt
|
21c0f78650
|
Report safe properties in BMC and CHC
|
2023-03-09 14:59:32 +01:00 |
|
Kamil Śliwak
|
d30ec3548f
|
Merge pull request #14032 from ethereum/fix-member-call-on-null-for-unary-operators
Fix `member call on null pointer` when type-checking built-in unary operators
|
2023-03-07 23:42:47 +01:00 |
|
Kamil Śliwak
|
c95108169d
|
Fix member call on null pointer when type-checking built-in unary operators
|
2023-03-06 19:20:18 +01:00 |
|
Kamil Śliwak
|
817a57b365
|
Use std:: prefix with std::forward() as well to satisfy Clang
|
2023-03-06 18:20:49 +01:00 |
|
Kamil Śliwak
|
5b5e853ea0
|
Warn about missing user-defined operator support in SMTChecker
|
2023-02-22 00:39:25 +01:00 |
|
wechman
|
2e8d50eca2
|
User-defined operators: Documentation
|
2023-02-22 00:39:25 +01:00 |
|
wechman
|
1a83fa7ebc
|
User-defined operators: Code generation
|
2023-02-22 00:39:25 +01:00 |
|
wechman
|
5b03c13f90
|
User-defined operators: Analysis
|
2023-02-22 00:39:25 +01:00 |
|
wechman
|
9445483d60
|
User-defined operators: Parsing and grammar
|
2023-02-22 00:06:17 +01:00 |
|
wechman
|
9a36438441
|
User-defined operators: AST
|
2023-02-22 00:06:17 +01:00 |
|
chriseth
|
07750ea23a
|
More aggressive runtime code exclusion.
|
2023-02-15 21:33:06 +01:00 |
|
Kamil Śliwak
|
1a981af548
|
Only suggest removing parentheses from a construction call if they're empty
|
2023-02-15 14:27:03 +01:00 |
|
Kamil Śliwak
|
73183d3df9
|
Fix missing base constructor arguments being treated as an unimplemented function
|
2023-02-15 14:27:03 +01:00 |
|
Daniel
|
d33f2734b6
|
Merge pull request #13952 from ethereum/fix-abstract-nondet
fix abstract nondet exception
|
2023-02-08 19:39:19 +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 |
|
Leo Alt
|
db9c11a2a5
|
fix abstract nondet exception
|
2023-02-08 16:59:37 +01:00 |
|
Daniel
|
82fdc6fccc
|
Merge pull request #13932 from lemenkov/redundant_std_move
libsolidity: Redundant std::move
|
2023-02-07 15:29:41 +01:00 |
|
Leo Alt
|
8d91ccf028
|
[SMTChecker] Add a new trusted mode which assumes that code that is
available at compile time is trusted.
|
2023-02-06 17:02:33 +01:00 |
|
Peter Lemenkov
|
b3f35f703a
|
libsolidity: Redundant std::move
This patch suppresses warnings like this one:
```
/builddir/build/BUILD/solidity-0.8.18/libsolidity/ast/AST.h: In constructor 'solidity::frontend::FunctionDefinition::FunctionDefinition(int64_t, const solidity::frontend::ASTNode::SourceLocation&, solidity::frontend::ASTPointer<std::__cxx11::basic_string<char> >&, const solidity::frontend::ASTNode::SourceLocation&, solidity::frontend::Visibility, solidity::frontend::StateMutability, bool, solidity::langutil::Token, bool, solidity::frontend::ASTPointer<solidity::frontend::OverrideSpecifier>&, solidity::frontend::ASTPointer<solidity::frontend::StructuredDocumentation>&, solidity::frontend::ASTPointer<solidity::frontend::ParameterList>&, std::vector<std::shared_ptr<solidity::frontend::ModifierInvocation> >, solidity::frontend::ASTPointer<solidity::frontend::ParameterList>&, solidity::frontend::ASTPointer<solidity::frontend::Block>&)':
/builddir/build/BUILD/solidity-0.8.18/libsolidity/ast/AST.h:926:69: error: redundant move in initialization [-Werror=redundant-move]
926 | CallableDeclaration(_id, _location, _name, std::move(_nameLocation), _visibility, _parameters, _isVirtual, _overrides, _returnParameters),
| ~~~~~~~~~^~~~~~~~~~~~~~~
/builddir/build/BUILD/solidity-0.8.18/libsolidity/ast/AST.h:926:69: note: remove 'std::move' call
```
Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
|
2023-02-05 12:06:19 +01:00 |
|
Jacob Heider
|
43431eb427
|
Fixes compilation errors with some clangs
resolves https://github.com/ethereum/solidity/issues/13854
|
2023-02-03 21:37:50 -05:00 |
|
Matheus Aguiar
|
2b70b08d5f
|
Allow library external functions to be bound with using for
|
2023-02-02 13:39:19 -03:00 |
|
  
|
feba4de509
|
Add paris constraints to SMTChecker
Co-authored-by: Daniel <daniel@ekpyron.org>
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
Co-authored-by: Leo <leo@ethereum.org>
|
2023-01-31 11:03:04 +01:00 |
|
Nikola Matic
|
e7543d487d
|
Issue warning when using deprecated SELFDESTRUCT
|
2023-01-25 16:55:11 +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 |
|
vlad
|
7fbd36855d
|
Disallow usage of the indexed attribute for modifier parameters Added tests for edge cases of several keywords
|
2023-01-20 19:53:02 +01:00 |
|