Fix recursive_dereferencer in binops

This commit is contained in:
Pragyansh Chaturvedi
2025-10-03 13:35:15 +05:30
parent a622c53e0f
commit c9ee6e4f17
2 changed files with 2 additions and 6 deletions

View File

@ -8,10 +8,7 @@ logger: Logger = logging.getLogger(__name__)
def recursive_dereferencer(var, builder): def recursive_dereferencer(var, builder):
"""dereference until primitive type comes out""" """dereference until primitive type comes out"""
if var.type == ir.PointerType(ir.PointerType(ir.IntType(64))): if isinstance(var.type, ir.PointerType):
a = builder.load(var)
return recursive_dereferencer(a, builder)
elif var.type == ir.PointerType(ir.IntType(64)):
a = builder.load(var) a = builder.load(var)
return recursive_dereferencer(a, builder) return recursive_dereferencer(a, builder)
elif var.type == ir.IntType(64): elif var.type == ir.IntType(64):

View File

@ -41,8 +41,7 @@ def _handle_attribute_expr(
attr_name = expr.attr attr_name = expr.attr
if var_name in local_sym_tab: if var_name in local_sym_tab:
var_ptr, var_type, var_metadata = local_sym_tab[var_name] var_ptr, var_type, var_metadata = local_sym_tab[var_name]
logger.info(f"Loading attribute { logger.info(f"Loading attribute {attr_name} from variable {var_name}")
attr_name} from variable {var_name}")
logger.info(f"Variable type: {var_type}, Variable ptr: {var_ptr}") logger.info(f"Variable type: {var_type}, Variable ptr: {var_ptr}")
metadata = structs_sym_tab[var_metadata] metadata = structs_sym_tab[var_metadata]