Merge pull request #12177 from DavidRomanovizc/patch-4

Include actual contract size in the code size warning
This commit is contained in:
Kamil Śliwak
2021-10-29 00:18:07 +02:00
committed by GitHub
6 changed files with 41 additions and 3 deletions
+4 -1
View File
@@ -83,6 +83,7 @@
#include <utility>
#include <map>
#include <limits>
#include <string>
using namespace std;
using namespace solidity;
@@ -1248,7 +1249,9 @@ void CompilerStack::assemble(
m_errorReporter.warning(
5574_error,
_contract.location(),
"Contract code size exceeds 24576 bytes (a limit introduced in Spurious Dragon). "
"Contract code size is "s +
to_string(compiledContract.runtimeObject.bytecode.size()) +
" bytes and exceeds 24576 bytes (a limit introduced in Spurious Dragon). "
"This contract may not be deployable on mainnet. "
"Consider enabling the optimizer (with a low \"runs\" value!), "
"turning off revert strings, or using libraries."
+2
View File
@@ -77,6 +77,8 @@ void SyntaxTest::setupCompiler()
OptimiserSettings::full() :
OptimiserSettings::minimal()
);
compiler().setMetadataFormat(CompilerStack::MetadataFormat::NoMetadata);
compiler().setMetadataHash(CompilerStack::MetadataHash::None);
}
void SyntaxTest::parseAndAnalyze()
@@ -1,3 +1,5 @@
pragma abicoder v2;
contract test {
function f() public pure returns (string memory ret) {
// 27000 bytes long data
@@ -5,6 +7,6 @@ contract test {
}
}
// ====
// EVMVersion: >=spuriousDragon
// EVMVersion: >byzantium
// ----
// Warning 5574: (0-27133): Contract code size exceeds 24576 bytes (a limit introduced in Spurious Dragon). This contract may not be deployable on mainnet. Consider enabling the optimizer (with a low "runs" value!), turning off revert strings, or using libraries.
// Warning 5574: (21-27154): Contract code size is 27199 bytes and exceeds 24576 bytes (a limit introduced in Spurious Dragon). This contract may not be deployable on mainnet. Consider enabling the optimizer (with a low "runs" value!), turning off revert strings, or using libraries.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long