@@ -359,53 +359,11 @@ def handle_return(builder, stmt, local_sym_tab, ret_type):
359
359
return _handle_none_return (builder )
360
360
elif isinstance (stmt .value , ast .Name ) and _is_xdp_name (stmt .value .id ):
361
361
return _handle_xdp_return (stmt , builder , ret_type )
362
- elif True :
362
+ else :
363
363
val = eval_expr (None , None , builder , stmt .value , local_sym_tab , {}, {})
364
364
logger .info (f"Evaluated return expression to { val } " )
365
365
builder .ret (val [0 ])
366
366
return True
367
- elif (
368
- isinstance (stmt .value , ast .Call )
369
- and isinstance (stmt .value .func , ast .Name )
370
- and len (stmt .value .args ) == 1
371
- ):
372
- if isinstance (stmt .value .args [0 ], ast .Constant ) and isinstance (
373
- stmt .value .args [0 ].value , int
374
- ):
375
- call_type = stmt .value .func .id
376
- if ctypes_to_ir (call_type ) != ret_type :
377
- raise ValueError (
378
- "Return type mismatch: expected"
379
- f"{ ctypes_to_ir (call_type )} , got { call_type } "
380
- )
381
- else :
382
- builder .ret (ir .Constant (ret_type , stmt .value .args [0 ].value ))
383
- return True
384
- elif isinstance (stmt .value .args [0 ], ast .BinOp ):
385
- # TODO: Should be routed through eval_expr
386
- val = handle_binary_op (stmt .value .args [0 ], builder , None , local_sym_tab )
387
- if val is None :
388
- raise ValueError ("Failed to evaluate return expression" )
389
- if val [1 ] != ret_type :
390
- raise ValueError (
391
- f"Return type mismatch: expected { ret_type } , got { val [1 ]} "
392
- )
393
- builder .ret (val [0 ])
394
- return True
395
- elif isinstance (stmt .value .args [0 ], ast .Name ):
396
- if stmt .value .args [0 ].id in local_sym_tab :
397
- var = local_sym_tab [stmt .value .args [0 ].id ].var
398
- val = builder .load (var )
399
- if val .type != ret_type :
400
- raise ValueError (
401
- f"Return type mismatch: expected { ret_type } , got { val .type } "
402
- )
403
- builder .ret (val )
404
- return True
405
- else :
406
- raise ValueError ("Failed to evaluate return expression" )
407
- else :
408
- raise ValueError ("Unsupported return value" )
409
367
410
368
411
369
def process_stmt (
0 commit comments