mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
PR fixes
This commit is contained in:
parent
694c431d74
commit
207b4fbeec
@ -11,6 +11,7 @@ Compiler Features:
|
||||
|
||||
|
||||
Bugfixes:
|
||||
* Code Generator: Fixes source mappings for immutables.
|
||||
* Commandline Interface: Fix extra newline character being appended to sources passed through standard input, affecting their hashes.
|
||||
* SMTChecker: Fix internal error in magic type access (``block``, ``msg``, ``tx``).
|
||||
* TypeChecker: Fix internal error when using user defined value types in public library functions.
|
||||
@ -27,7 +28,6 @@ Important Bugfixes:
|
||||
|
||||
Bugfixes:
|
||||
* AST: Export ``canonicalName`` for ``UserDefinedValueTypeDefinition`` and ``ContractDefinition``.
|
||||
* Code Generator: Fixes source mappings for immutables.
|
||||
|
||||
|
||||
|
||||
|
@ -87,9 +87,9 @@ size_t AssemblyItem::bytesRequired(size_t _addressLength) const
|
||||
case PushImmutable:
|
||||
return 1 + 32;
|
||||
case AssignImmutable:
|
||||
if (!m_immutableOccurrences)
|
||||
return 0;
|
||||
else if (m_immutableOccurrences.value() != 0)
|
||||
solAssert(m_immutableOccurrences, "");
|
||||
|
||||
if (m_immutableOccurrences.value() != 0)
|
||||
// (DUP DUP PUSH <n> ADD MSTORE)* (PUSH <n> ADD MSTORE)
|
||||
return (*m_immutableOccurrences - 1) * (5 + 32) + (3 + 32);
|
||||
else
|
||||
@ -335,10 +335,9 @@ size_t AssemblyItem::opcodeCount() const noexcept
|
||||
// For n immutable occurrences the first (n - 1) occurrences will
|
||||
// generate 5 opcodes and the last will generate 3 opcodes,
|
||||
// because it is reusing the 2 top-most elements on the stack.
|
||||
if (!m_immutableOccurrences)
|
||||
// AssignImmutable without any uses does not need to be assigned to at all.
|
||||
return 0;
|
||||
else if (m_immutableOccurrences.value() != 0)
|
||||
solAssert(m_immutableOccurrences, "");
|
||||
|
||||
if (m_immutableOccurrences.value() != 0)
|
||||
return (*m_immutableOccurrences - 1) * 5 + 3;
|
||||
else
|
||||
return 2; // two POP's
|
||||
|
@ -172,9 +172,9 @@ public:
|
||||
|
||||
void setImmutableOccurrences(size_t _n) const { m_immutableOccurrences = _n; }
|
||||
|
||||
private:
|
||||
size_t opcodeCount() const noexcept;
|
||||
|
||||
private:
|
||||
AssemblyItemType m_type;
|
||||
Instruction m_instruction; ///< Only valid if m_type == Operation
|
||||
std::shared_ptr<u256> m_data; ///< Only valid if m_type != Operation
|
||||
|
Loading…
Reference in New Issue
Block a user