aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/analysis/StaticAnalyzer.cpp
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-09-05 16:32:10 +0800
committerGitHub <noreply@github.com>2018-09-05 16:32:10 +0800
commita996ea266c4542b37503c1d2261a17f3d5a55dbb (patch)
treec270b6634ff1bb1814ab5524e05ef841610007a4 /libsolidity/analysis/StaticAnalyzer.cpp
parente6aa15bae1839ce6761c75521e0166c06469dc2e (diff)
parentde9f566a7cda48a8a23f91be380e8cd917ecaf34 (diff)
downloaddexon-solidity-a996ea266c4542b37503c1d2261a17f3d5a55dbb.tar
dexon-solidity-a996ea266c4542b37503c1d2261a17f3d5a55dbb.tar.gz
dexon-solidity-a996ea266c4542b37503c1d2261a17f3d5a55dbb.tar.bz2
dexon-solidity-a996ea266c4542b37503c1d2261a17f3d5a55dbb.tar.lz
dexon-solidity-a996ea266c4542b37503c1d2261a17f3d5a55dbb.tar.xz
dexon-solidity-a996ea266c4542b37503c1d2261a17f3d5a55dbb.tar.zst
dexon-solidity-a996ea266c4542b37503c1d2261a17f3d5a55dbb.zip
Merge pull request #4590 from ethereum/msgValueModifier
Warn if modifier uses msg.value in non-payable function
Diffstat (limited to 'libsolidity/analysis/StaticAnalyzer.cpp')
-rw-r--r--libsolidity/analysis/StaticAnalyzer.cpp10
1 files changed, 0 insertions, 10 deletions
diff --git a/libsolidity/analysis/StaticAnalyzer.cpp b/libsolidity/analysis/StaticAnalyzer.cpp
index 60a58665..487a5cca 100644
--- a/libsolidity/analysis/StaticAnalyzer.cpp
+++ b/libsolidity/analysis/StaticAnalyzer.cpp
@@ -56,7 +56,6 @@ bool StaticAnalyzer::visit(FunctionDefinition const& _function)
else
solAssert(!m_currentFunction, "");
solAssert(m_localVarUseCount.empty(), "");
- m_nonPayablePublic = _function.isPublic() && !_function.isPayable();
m_constructor = _function.isConstructor();
return true;
}
@@ -64,7 +63,6 @@ bool StaticAnalyzer::visit(FunctionDefinition const& _function)
void StaticAnalyzer::endVisit(FunctionDefinition const&)
{
m_currentFunction = nullptr;
- m_nonPayablePublic = false;
m_constructor = false;
for (auto const& var: m_localVarUseCount)
if (var.second == 0)
@@ -154,14 +152,6 @@ bool StaticAnalyzer::visit(MemberAccess const& _memberAccess)
);
}
- if (m_nonPayablePublic && !m_library)
- if (MagicType const* type = dynamic_cast<MagicType const*>(_memberAccess.expression().annotation().type.get()))
- if (type->kind() == MagicType::Kind::Message && _memberAccess.memberName() == "value")
- m_errorReporter.warning(
- _memberAccess.location(),
- "\"msg.value\" used in non-payable function. Do you want to add the \"payable\" modifier to this function?"
- );
-
if (_memberAccess.memberName() == "callcode")
if (auto const* type = dynamic_cast<FunctionType const*>(_memberAccess.annotation().type.get()))
if (type->kind() == FunctionType::Kind::BareCallCode)