aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/analysis
diff options
context:
space:
mode:
authorAlex Beregszaszi <alex@rtfs.hu>2017-07-13 23:02:10 +0800
committerAlex Beregszaszi <alex@rtfs.hu>2017-07-14 04:47:35 +0800
commit4229caaadc1767571806a11ea431c5cf389081ac (patch)
treecb96bf31298c1fd0c77ee9ab41299b23cfe52475 /libsolidity/analysis
parente640bb2aed399fa920e35d42573f625fc139dcce (diff)
downloaddexon-solidity-4229caaadc1767571806a11ea431c5cf389081ac.tar.gz
dexon-solidity-4229caaadc1767571806a11ea431c5cf389081ac.tar.zst
dexon-solidity-4229caaadc1767571806a11ea431c5cf389081ac.zip
Disable large arrays for memory location too
Diffstat (limited to 'libsolidity/analysis')
-rw-r--r--libsolidity/analysis/TypeChecker.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp
index 56f9c764..29db7441 100644
--- a/libsolidity/analysis/TypeChecker.cpp
+++ b/libsolidity/analysis/TypeChecker.cpp
@@ -586,7 +586,11 @@ bool TypeChecker::visit(VariableDeclaration const& _variable)
if (varType->category() == Type::Category::Array)
if (auto arrayType = dynamic_cast<ArrayType const*>(varType.get()))
- if ((arrayType->location() == DataLocation::CallData) && !arrayType->validForCalldata())
+ if (
+ ((arrayType->location() == DataLocation::Memory) ||
+ (arrayType->location() == DataLocation::CallData)) &&
+ !arrayType->validForCalldata()
+ )
m_errorReporter.typeError(_variable.location(), "Array is too large to be encoded as calldata.");
return false;