Skip to content

Commit 0c1acf1

Browse files
committed
Fix local_sym_tab usage in binary_ops
1 parent 71b97e3 commit 0c1acf1

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

pythonbpf/binary_ops.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def handle_binary_op(rval, module, builder, var_name, local_sym_tab, map_sym_tab
2525
# Handle left operand
2626
if isinstance(left, ast.Name):
2727
if left.id in local_sym_tab:
28-
left = recursive_dereferencer(local_sym_tab[left.id][0], builder)
28+
left = recursive_dereferencer(local_sym_tab[left.id].var, builder)
2929
else:
3030
raise SyntaxError(f"Undefined variable: {left.id}")
3131
elif isinstance(left, ast.Constant):
@@ -35,7 +35,7 @@ def handle_binary_op(rval, module, builder, var_name, local_sym_tab, map_sym_tab
3535

3636
if isinstance(right, ast.Name):
3737
if right.id in local_sym_tab:
38-
right = recursive_dereferencer(local_sym_tab[right.id][0], builder)
38+
right = recursive_dereferencer(local_sym_tab[right.id].var, builder)
3939
else:
4040
raise SyntaxError(f"Undefined variable: {right.id}")
4141
elif isinstance(right, ast.Constant):
@@ -46,26 +46,26 @@ def handle_binary_op(rval, module, builder, var_name, local_sym_tab, map_sym_tab
4646
print(f"left is {left}, right is {right}, op is {op}")
4747

4848
if isinstance(op, ast.Add):
49-
builder.store(builder.add(left, right), local_sym_tab[var_name][0])
49+
builder.store(builder.add(left, right), local_sym_tab[var_name].var)
5050
elif isinstance(op, ast.Sub):
51-
builder.store(builder.sub(left, right), local_sym_tab[var_name][0])
51+
builder.store(builder.sub(left, right), local_sym_tab[var_name].var)
5252
elif isinstance(op, ast.Mult):
53-
builder.store(builder.mul(left, right), local_sym_tab[var_name][0])
53+
builder.store(builder.mul(left, right), local_sym_tab[var_name].var)
5454
elif isinstance(op, ast.Div):
55-
builder.store(builder.sdiv(left, right), local_sym_tab[var_name][0])
55+
builder.store(builder.sdiv(left, right), local_sym_tab[var_name].var)
5656
elif isinstance(op, ast.Mod):
57-
builder.store(builder.srem(left, right), local_sym_tab[var_name][0])
57+
builder.store(builder.srem(left, right), local_sym_tab[var_name].var)
5858
elif isinstance(op, ast.LShift):
59-
builder.store(builder.shl(left, right), local_sym_tab[var_name][0])
59+
builder.store(builder.shl(left, right), local_sym_tab[var_name].var)
6060
elif isinstance(op, ast.RShift):
61-
builder.store(builder.lshr(left, right), local_sym_tab[var_name][0])
61+
builder.store(builder.lshr(left, right), local_sym_tab[var_name].var)
6262
elif isinstance(op, ast.BitOr):
63-
builder.store(builder.or_(left, right), local_sym_tab[var_name][0])
63+
builder.store(builder.or_(left, right), local_sym_tab[var_name].var)
6464
elif isinstance(op, ast.BitXor):
65-
builder.store(builder.xor(left, right), local_sym_tab[var_name][0])
65+
builder.store(builder.xor(left, right), local_sym_tab[var_name].var)
6666
elif isinstance(op, ast.BitAnd):
67-
builder.store(builder.and_(left, right), local_sym_tab[var_name][0])
67+
builder.store(builder.and_(left, right), local_sym_tab[var_name].var)
6868
elif isinstance(op, ast.FloorDiv):
69-
builder.store(builder.udiv(left, right), local_sym_tab[var_name][0])
69+
builder.store(builder.udiv(left, right), local_sym_tab[var_name].var)
7070
else:
7171
raise SyntaxError("Unsupported binary operation")

pythonbpf/functions_pass.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -674,7 +674,7 @@ def _expr_type(e):
674674
if found_type is None:
675675
found_type = t
676676
elif found_type != t:
677-
raise ValueError(f"Conflicting return types:{found_type} vs {t}")
677+
raise ValueError(f"Conflicting return types: {found_type} vs {t}")
678678
return found_type or "None"
679679

680680

0 commit comments

Comments
 (0)