@@ -2330,7 +2330,9 @@ def gen_expr(self, expr, custom_tmp = None):
2330
2330
self .gen_expr (self .while_continue_expr )
2331
2331
self .cur_fn .add_br (self .loop_entry_label )
2332
2332
else :
2333
- self .gen_defer_stmts (scope = expr .scope , run_defer_previous = True )
2333
+ self .gen_defer_stmts (
2334
+ scope = expr .scope , run_defer_previous = True
2335
+ )
2334
2336
self .cur_fn .add_br (self .loop_exit_label )
2335
2337
return ir .Skip ()
2336
2338
elif isinstance (expr , ast .ReturnExpr ):
@@ -2343,7 +2345,9 @@ def gen_expr(self, expr, custom_tmp = None):
2343
2345
ir .Name ("result" )
2344
2346
), ir .IntLit (ir .UINT8_T , "1" )
2345
2347
)
2346
- self .gen_defer_stmts (scope = expr .scope , run_defer_previous = True )
2348
+ self .gen_defer_stmts (
2349
+ scope = expr .scope , run_defer_previous = True
2350
+ )
2347
2351
self .cur_fn .add_ret_void ()
2348
2352
elif expr .has_expr :
2349
2353
is_array = self .cur_fn_ret_typ .symbol ().kind == TypeKind .Array
@@ -2366,13 +2370,19 @@ def gen_expr(self, expr, custom_tmp = None):
2366
2370
expr_ = tmp
2367
2371
if wrap_result :
2368
2372
expr_ = self .result_value (self .cur_fn_ret_typ , expr_ )
2369
- self .gen_defer_stmts (scope = expr .scope , run_defer_previous = True )
2373
+ self .gen_defer_stmts (
2374
+ scope = expr .scope , run_defer_previous = True
2375
+ )
2370
2376
self .cur_fn .add_ret (expr_ )
2371
2377
elif wrap_result :
2372
- self .gen_defer_stmts (scope = expr .scope , run_defer_previous = True )
2378
+ self .gen_defer_stmts (
2379
+ scope = expr .scope , run_defer_previous = True
2380
+ )
2373
2381
self .cur_fn .add_ret (self .result_void (self .cur_fn_ret_typ ))
2374
2382
else :
2375
- self .gen_defer_stmts (scope = expr .scope , run_defer_previous = True )
2383
+ self .gen_defer_stmts (
2384
+ scope = expr .scope , run_defer_previous = True
2385
+ )
2376
2386
self .cur_fn .add_ret_void ()
2377
2387
return ir .Skip ()
2378
2388
elif isinstance (expr , ast .ThrowExpr ):
@@ -2461,8 +2471,10 @@ def gen_defer_stmts(
2461
2471
):
2462
2472
for i in range (len (self .cur_fn_defer_stmts ) - 1 , - 1 , - 1 ):
2463
2473
defer_stmt = self .cur_fn_defer_stmts [i ]
2464
- if not ((run_defer_previous and scope .start >= defer_stmt .scope .start ) or
2465
- (scope .start == defer_stmt .scope .start )):
2474
+ if not (
2475
+ (run_defer_previous and scope .start >= defer_stmt .scope .start )
2476
+ or (scope .start == defer_stmt .scope .start )
2477
+ ):
2466
2478
continue
2467
2479
if defer_stmt .mode == ast .DeferMode .ERROR and not gen_errdefer :
2468
2480
# Should be run only when an error occurs
0 commit comments