about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorTheofilos Augoustis <theofilos.augoustis@gmail.com>2025-10-14 09:05:07 +0000
committerTheofilos Augoustis <theofilos.augoustis@gmail.com>2025-10-14 09:05:07 +0000
commiteaf7b7d06235d1899da4d47ef78f534120ba2e02 (patch)
treec4d073d46a9d3b3419dd6c71be923c6c6929a733 /src
parent45b5d9904972ca7b64645f33372353b68658763c (diff)
downloadfocaccia-eaf7b7d06235d1899da4d47ef78f534120ba2e02.tar.gz
focaccia-eaf7b7d06235d1899da4d47ef78f534120ba2e02.zip
Add better diagnostic for incorrect symbolic expressions
Diffstat (limited to 'src')
-rw-r--r--src/focaccia/symbolic.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/focaccia/symbolic.py b/src/focaccia/symbolic.py
index cf3ef08..6a99b60 100644
--- a/src/focaccia/symbolic.py
+++ b/src/focaccia/symbolic.py
@@ -56,9 +56,12 @@ def eval_symbol(symbol: Expr, conc_state: ReadableProgramState) -> int:
                              f' that contain IR location expressions.')
 
     res = eval_expr(symbol, ConcreteStateWrapper(conc_state))
-    assert(isinstance(res, ExprInt))  # Must be either ExprInt or ExprLoc,
-                                      # but ExprLocs are disallowed by the
-                                      # ConcreteStateWrapper
+
+    # Must be either ExprInt or ExprLoc,
+    # but ExprLocs are disallowed by the
+    # ConcreteStateWrapper
+    if not isinstance(res, ExprInt):
+        raise Exception(f'{res} from symbol {symbol} is not an instance of ExprInt but only ExprInt can be evaluated')
     return int(res)
 
 class Instruction: