|
@@ -612,7 +612,14 @@ module Transformer = struct
|
|
let param = trans false [] param in
|
|
let param = trans false [] param in
|
|
let call = { a_expr with eexpr = TCall(x, [param.a_expr])} in
|
|
let call = { a_expr with eexpr = TCall(x, [param.a_expr])} in
|
|
lift_expr call
|
|
lift_expr call
|
|
- | (_, TCall(e, params)) -> assert false
|
|
|
|
|
|
+ | (_, TCall(e, params)) ->
|
|
|
|
+ let e = trans true [] e in
|
|
|
|
+ let params = List.map (trans true []) params in
|
|
|
|
+ let blocks = List.flatten (List.map (fun (p) -> p.a_blocks) params) in
|
|
|
|
+ let params = List.map (fun (p) -> p.a_expr) params in
|
|
|
|
+ let e = { a_expr with eexpr = TCall(e.a_expr, params) } in
|
|
|
|
+ lift_expr ~blocks:blocks e
|
|
|
|
+
|
|
| (true, TArray(e1, e2)) ->
|
|
| (true, TArray(e1, e2)) ->
|
|
let e1 = trans true [] e1 in
|
|
let e1 = trans true [] e1 in
|
|
let e2 = trans true [] e2 in
|
|
let e2 = trans true [] e2 in
|