mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #9039 from ethereum/yul-remove-pc-instr
[Yul] remove PC instruction
This commit is contained in:
commit
1f49edd29d
@ -8,6 +8,7 @@ Breaking changes:
|
||||
* Type Checker: Disallow shifts by signed types.
|
||||
|
||||
Language Features:
|
||||
* Yul: Disallow EVM instruction `pc()`.
|
||||
|
||||
|
||||
Compiler Features:
|
||||
|
@ -580,16 +580,18 @@ bool AsmAnalyzer::warnOnInstructions(evmasm::Instruction _instr, SourceLocation
|
||||
errorForVM("only available for Constantinople-compatible");
|
||||
else if (_instr == evmasm::Instruction::CHAINID && !m_evmVersion.hasChainID())
|
||||
errorForVM("only available for Istanbul-compatible");
|
||||
else if (_instr == evmasm::Instruction::PC)
|
||||
m_errorReporter.warning(
|
||||
2450_error,
|
||||
_location,
|
||||
"The \"" +
|
||||
boost::to_lower_copy(instructionInfo(_instr).name) +
|
||||
"\" instruction is deprecated and will be removed in the next breaking release."
|
||||
);
|
||||
else if (_instr == evmasm::Instruction::SELFBALANCE && !m_evmVersion.hasSelfBalance())
|
||||
errorForVM("only available for Istanbul-compatible");
|
||||
else if (_instr == evmasm::Instruction::PC)
|
||||
{
|
||||
m_errorReporter.error(
|
||||
4316_error,
|
||||
Error::Type::SyntaxError,
|
||||
_location,
|
||||
"PC instruction is a low-level EVM feature. "
|
||||
"Because of that PC is disallowed in strict assembly."
|
||||
);
|
||||
}
|
||||
else if (
|
||||
_instr == evmasm::Instruction::JUMP ||
|
||||
_instr == evmasm::Instruction::JUMPI ||
|
||||
|
@ -6,4 +6,4 @@ contract C {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning: (61-63): The "pc" instruction is deprecated and will be removed in the next breaking release.
|
||||
// SyntaxError: (61-63): PC instruction is a low-level EVM feature. Because of that PC is disallowed in strict assembly.
|
||||
|
@ -4,4 +4,4 @@
|
||||
// ====
|
||||
// dialect: evmTyped
|
||||
// ----
|
||||
// Warning: (10-12): The "pc" instruction is deprecated and will be removed in the next breaking release.
|
||||
// SyntaxError: (10-12): PC instruction is a low-level EVM feature. Because of that PC is disallowed in strict assembly.
|
||||
|
Loading…
Reference in New Issue
Block a user