aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/codegen/CompilerUtils.h
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2016-11-21 18:42:38 +0800
committerchriseth <c@ethdev.com>2016-11-21 18:42:38 +0800
commitb318366e6f16ed6a4274247d09badac4affff8d5 (patch)
treeef8dac7fe9285c1bc0b24ad042a3cda5565a661d /libsolidity/codegen/CompilerUtils.h
parent4633f3def897db0f91237f98cf46e5d84fb05e61 (diff)
parent5ebd31ce2d7447917740088eaa22c8c62c453a94 (diff)
downloaddexon-solidity-b318366e6f16ed6a4274247d09badac4affff8d5.tar
dexon-solidity-b318366e6f16ed6a4274247d09badac4affff8d5.tar.gz
dexon-solidity-b318366e6f16ed6a4274247d09badac4affff8d5.tar.bz2
dexon-solidity-b318366e6f16ed6a4274247d09badac4affff8d5.tar.lz
dexon-solidity-b318366e6f16ed6a4274247d09badac4affff8d5.tar.xz
dexon-solidity-b318366e6f16ed6a4274247d09badac4affff8d5.tar.zst
dexon-solidity-b318366e6f16ed6a4274247d09badac4affff8d5.zip
Merge remote-tracking branch 'origin/develop' into release
Diffstat (limited to 'libsolidity/codegen/CompilerUtils.h')
-rw-r--r--libsolidity/codegen/CompilerUtils.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/libsolidity/codegen/CompilerUtils.h b/libsolidity/codegen/CompilerUtils.h
index da74dc90..8e4033d6 100644
--- a/libsolidity/codegen/CompilerUtils.h
+++ b/libsolidity/codegen/CompilerUtils.h
@@ -114,6 +114,17 @@ public:
/// Stack post:
void memoryCopy();
+ /// Converts the combined and left-aligned (right-aligned if @a _rightAligned is true)
+ /// external function type <address><function identifier> into two stack slots:
+ /// address (right aligned), function identifier (right aligned)
+ void splitExternalFunctionType(bool _rightAligned);
+ /// Performs the opposite operation of splitExternalFunctionType(_rightAligned)
+ void combineExternalFunctionType(bool _rightAligned);
+ /// Appends code that combines the construction-time (if available) and runtime function
+ /// entry label of the given function into a single stack slot.
+ /// Note: This might cause the compilation queue of the runtime context to be extended.
+ void pushCombinedFunctionEntryLabel(Declaration const& _function);
+
/// Appends code for an implicit or explicit type conversion. This includes erasing higher
/// order bits (@see appendHighBitCleanup) when widening integer but also copy to memory
/// if a reference type is converted from calldata or storage to memory.