From b1add657b76621952be100b4203dd2c8a466b9a1 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Tue, 1 Nov 2016 02:07:20 +0000 Subject: LLL: throw exceptions on invalid symbols --- liblll/CodeFragment.cpp | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/liblll/CodeFragment.cpp b/liblll/CodeFragment.cpp index 35ad4e59..af7d7f0a 100644 --- a/liblll/CodeFragment.cpp +++ b/liblll/CodeFragment.cpp @@ -91,15 +91,11 @@ CodeFragment::CodeFragment(sp::utree const& _t, CompilerState& _s, bool _allowAS { auto it = _s.vars.find(s); if (it == _s.vars.end()) - { - bool ok; - tie(it, ok) = _s.vars.insert(make_pair(s, make_pair(_s.stackSize, 32))); - _s.stackSize += 32; - } + error(std::string("Symbol not found: ") + s); m_asm.append((u256)it->second.first); } else - error(); + error(s); break; } @@ -111,7 +107,9 @@ CodeFragment::CodeFragment(sp::utree const& _t, CompilerState& _s, bool _allowAS m_asm.append((u256)i); break; } - default: break; + default: + error("Unexpected fragment type"); + break; } } @@ -177,11 +175,7 @@ void CodeFragment::constructOperation(sp::utree const& _t, CompilerState& _s) { auto it = _s.vars.find(n); if (it == _s.vars.end()) - { - bool ok; - tie(it, ok) = _s.vars.insert(make_pair(n, make_pair(_s.stackSize, 32))); - _s.stackSize += 32; - } + error(std::string("Symbol not found: ") + s); return it->second.first; }; -- cgit v1.2.3