mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Fixing signedness conversion warnings in libevmasm
Co-authored-by: Harikrishnan Mulackal <webmail.hari@gmail.com>
This commit is contained in:
co-authored by
Harikrishnan Mulackal
parent
b9f2697a3c
commit
e4e3f49844
@@ -386,7 +386,11 @@ void CSECodeGenerator::generateClassElement(Id _c, bool _allowSequenced)
|
||||
"Opcodes with more than two arguments not implemented yet."
|
||||
);
|
||||
for (size_t i = 0; i < arguments.size(); ++i)
|
||||
assertThrow(m_stack[m_stackHeight - i] == arguments[i], OptimizerException, "Expected arguments not present." );
|
||||
assertThrow(
|
||||
m_stack[m_stackHeight - static_cast<int>(i)] == arguments[i],
|
||||
OptimizerException,
|
||||
"Expected arguments not present."
|
||||
);
|
||||
|
||||
while (SemanticInformation::isCommutativeOperation(*expr.item) &&
|
||||
!m_generatedItems.empty() &&
|
||||
@@ -395,8 +399,8 @@ void CSECodeGenerator::generateClassElement(Id _c, bool _allowSequenced)
|
||||
appendOrRemoveSwap(m_stackHeight - 1, itemLocation);
|
||||
for (size_t i = 0; i < arguments.size(); ++i)
|
||||
{
|
||||
m_classPositions[m_stack[m_stackHeight - i]].erase(m_stackHeight - i);
|
||||
m_stack.erase(m_stackHeight - i);
|
||||
m_classPositions[m_stack[m_stackHeight - static_cast<int>(i)]].erase(m_stackHeight - static_cast<int>(i));
|
||||
m_stack.erase(m_stackHeight - static_cast<int>(i));
|
||||
}
|
||||
appendItem(*expr.item);
|
||||
if (expr.item->type() != Operation || instructionInfo(expr.item->instruction()).ret == 1)
|
||||
@@ -467,7 +471,7 @@ void CSECodeGenerator::appendDup(int _fromPosition, SourceLocation const& _locat
|
||||
int instructionNum = 1 + m_stackHeight - _fromPosition;
|
||||
assertThrow(instructionNum <= 16, StackTooDeepException, "Stack too deep, try removing local variables.");
|
||||
assertThrow(1 <= instructionNum, OptimizerException, "Invalid stack access.");
|
||||
appendItem(AssemblyItem(dupInstruction(instructionNum), _location));
|
||||
appendItem(AssemblyItem(dupInstruction(static_cast<unsigned>(instructionNum)), _location));
|
||||
m_stack[m_stackHeight] = m_stack[_fromPosition];
|
||||
m_classPositions[m_stack[m_stackHeight]].insert(m_stackHeight);
|
||||
}
|
||||
@@ -480,7 +484,7 @@ void CSECodeGenerator::appendOrRemoveSwap(int _fromPosition, SourceLocation cons
|
||||
int instructionNum = m_stackHeight - _fromPosition;
|
||||
assertThrow(instructionNum <= 16, StackTooDeepException, "Stack too deep, try removing local variables.");
|
||||
assertThrow(1 <= instructionNum, OptimizerException, "Invalid stack access.");
|
||||
appendItem(AssemblyItem(swapInstruction(instructionNum), _location));
|
||||
appendItem(AssemblyItem(swapInstruction(static_cast<unsigned>(instructionNum)), _location));
|
||||
|
||||
if (m_stack[m_stackHeight] != m_stack[_fromPosition])
|
||||
{
|
||||
@@ -502,5 +506,5 @@ void CSECodeGenerator::appendOrRemoveSwap(int _fromPosition, SourceLocation cons
|
||||
void CSECodeGenerator::appendItem(AssemblyItem const& _item)
|
||||
{
|
||||
m_generatedItems.push_back(_item);
|
||||
m_stackHeight += _item.deposit();
|
||||
m_stackHeight += static_cast<int>(_item.deposit());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user