aboutsummaryrefslogtreecommitdiffstats
path: root/ExpressionClasses.cpp
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2015-05-13 03:27:04 +0800
committerchriseth <c@ethdev.com>2015-05-13 23:15:32 +0800
commitcebc959ff3d7dab6a41833013ffe22728def3221 (patch)
treec997849fb951a132c06ffaf3af45b3f3958f3f12 /ExpressionClasses.cpp
parent2654daab2628181597bb4c35ae69ca378248f8ba (diff)
downloaddexon-solidity-cebc959ff3d7dab6a41833013ffe22728def3221.tar
dexon-solidity-cebc959ff3d7dab6a41833013ffe22728def3221.tar.gz
dexon-solidity-cebc959ff3d7dab6a41833013ffe22728def3221.tar.bz2
dexon-solidity-cebc959ff3d7dab6a41833013ffe22728def3221.tar.lz
dexon-solidity-cebc959ff3d7dab6a41833013ffe22728def3221.tar.xz
dexon-solidity-cebc959ff3d7dab6a41833013ffe22728def3221.tar.zst
dexon-solidity-cebc959ff3d7dab6a41833013ffe22728def3221.zip
Known state: store tags on stack as unions.
Diffstat (limited to 'ExpressionClasses.cpp')
-rw-r--r--ExpressionClasses.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/ExpressionClasses.cpp b/ExpressionClasses.cpp
index cfbeba7f..81adc0db 100644
--- a/ExpressionClasses.cpp
+++ b/ExpressionClasses.cpp
@@ -82,6 +82,16 @@ ExpressionClasses::Id ExpressionClasses::find(
return exp.id;
}
+ExpressionClasses::Id ExpressionClasses::newClass(SourceLocation const& _location)
+{
+ Expression exp;
+ exp.id = m_representatives.size();
+ exp.item = storeItem(AssemblyItem(UndefinedItem, (u256(1) << 255) + exp.id, _location));
+ m_representatives.push_back(exp);
+ m_expressions.insert(exp);
+ return exp.id;
+}
+
bool ExpressionClasses::knownToBeDifferent(ExpressionClasses::Id _a, ExpressionClasses::Id _b)
{
// Try to simplify "_a - _b" and return true iff the value is a non-zero constant.