aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/inlineasm/AsmDataForward.h
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-01-10 22:25:53 +0800
committerGitHub <noreply@github.com>2018-01-10 22:25:53 +0800
commita75d5333d8ae614316b9c707e2022c2d144eaf33 (patch)
tree24ae6722975b86c4702d12feb825f3e3aa8663c5 /libsolidity/inlineasm/AsmDataForward.h
parent2548228b365d56612e2f039f735be0fdf6ce0807 (diff)
parent8b20a7cd53b04a4b3b3e26df4ddd9ad81d28bb1b (diff)
downloaddexon-solidity-a75d5333d8ae614316b9c707e2022c2d144eaf33.tar
dexon-solidity-a75d5333d8ae614316b9c707e2022c2d144eaf33.tar.gz
dexon-solidity-a75d5333d8ae614316b9c707e2022c2d144eaf33.tar.bz2
dexon-solidity-a75d5333d8ae614316b9c707e2022c2d144eaf33.tar.lz
dexon-solidity-a75d5333d8ae614316b9c707e2022c2d144eaf33.tar.xz
dexon-solidity-a75d5333d8ae614316b9c707e2022c2d144eaf33.tar.zst
dexon-solidity-a75d5333d8ae614316b9c707e2022c2d144eaf33.zip
Merge pull request #3317 from ethereum/looseStrictAsm
Split inline assembly into loose and strict flavour.
Diffstat (limited to 'libsolidity/inlineasm/AsmDataForward.h')
-rw-r--r--libsolidity/inlineasm/AsmDataForward.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/libsolidity/inlineasm/AsmDataForward.h b/libsolidity/inlineasm/AsmDataForward.h
index 317e257c..3a9600fe 100644
--- a/libsolidity/inlineasm/AsmDataForward.h
+++ b/libsolidity/inlineasm/AsmDataForward.h
@@ -53,6 +53,13 @@ struct TypedName;
using Expression = boost::variant<FunctionalInstruction, FunctionCall, Identifier, Literal>;
using Statement = boost::variant<ExpressionStatement, Instruction, Label, StackAssignment, Assignment, VariableDeclaration, FunctionDefinition, If, Switch, ForLoop, Block>;
+enum class AsmFlavour
+{
+ Loose, // no types, EVM instructions as function, jumps and direct stack manipulations
+ Strict, // no types, EVM instructions as functions, but no jumps and no direct stack manipulations
+ IULIA // same as Strict mode with types
+};
+
}
}
}