aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Changelog.md3
-rw-r--r--libsolidity/codegen/ExpressionCompiler.cpp3
2 files changed, 6 insertions, 0 deletions
diff --git a/Changelog.md b/Changelog.md
index 64273cd6..8f97b0e8 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -5,6 +5,9 @@ Features:
* Standard JSON: Support the ``outputSelection`` field for selective compilation of supplied sources.
* Syntax Checker: Unary ``+`` is now a syntax error as experimental 0.5.0 feature.
* Type Checker: Disallow non-pure constant state variables as experimental 0.5.0 feature.
+ * Code Generator: Always use all available gas for calls as experimental 0.5.0 feature
+ (previously, some amount was retained in order to work in pre-tangerine whistle
+ EVM versions)
Bugfixes:
* Parser: Fix source location of VariableDeclarationStatement.
diff --git a/libsolidity/codegen/ExpressionCompiler.cpp b/libsolidity/codegen/ExpressionCompiler.cpp
index c2bf0f5c..fe37baac 100644
--- a/libsolidity/codegen/ExpressionCompiler.cpp
+++ b/libsolidity/codegen/ExpressionCompiler.cpp
@@ -1714,6 +1714,9 @@ void ExpressionCompiler::appendExternalFunctionCall(
if (_functionType.gasSet())
m_context << dupInstruction(m_context.baseToCurrentStackOffset(gasStackPos));
+ else if (m_context.experimentalFeatureActive(ExperimentalFeature::V050))
+ // Send all gas (requires tangerine whistle EVM)
+ m_context << Instruction::GAS;
else
{
// send all gas except the amount needed to execute "SUB" and "CALL"