summaryrefslogtreecommitdiff
path: root/src/jib/c_backend.ml
diff options
context:
space:
mode:
Diffstat (limited to 'src/jib/c_backend.ml')
-rw-r--r--src/jib/c_backend.ml13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/jib/c_backend.ml b/src/jib/c_backend.ml
index b2447125..2fe21d93 100644
--- a/src/jib/c_backend.ml
+++ b/src/jib/c_backend.ml
@@ -49,6 +49,7 @@
(**************************************************************************)
open Ast
+open Ast_defs
open Ast_util
open Jib
open Jib_compile
@@ -2195,10 +2196,10 @@ let sgen_finish = function
Printf.sprintf " finish_%s();" (sgen_id id)
| _ -> assert false
-let rec get_recursive_functions (Defs defs) =
+let rec get_recursive_functions defs =
match defs with
| DEF_internal_mutrec fundefs :: defs ->
- IdSet.union (List.map id_of_fundef fundefs |> IdSet.of_list) (get_recursive_functions (Defs defs))
+ IdSet.union (List.map id_of_fundef fundefs |> IdSet.of_list) (get_recursive_functions defs)
| (DEF_fundef fdef as def) :: defs ->
let open Rewriter in
@@ -2215,11 +2216,11 @@ let rec get_recursive_functions (Defs defs) =
let map_defs = { rewriters_base with rewrite_exp = (fun _ -> fold_exp map_exp) } in
let _ = rewrite_def map_defs def in
if IdSet.mem (id_of_fundef fdef) !ids then
- IdSet.add (id_of_fundef fdef) (get_recursive_functions (Defs defs))
+ IdSet.add (id_of_fundef fdef) (get_recursive_functions defs)
else
- get_recursive_functions (Defs defs)
+ get_recursive_functions defs
- | _ :: defs -> get_recursive_functions (Defs defs)
+ | _ :: defs -> get_recursive_functions defs
| [] -> IdSet.empty
let jib_of_ast env ast =
@@ -2229,7 +2230,7 @@ let jib_of_ast env ast =
let compile_ast env output_chan c_includes ast =
try
- let recursive_functions = Spec_analysis.top_sort_defs ast |> get_recursive_functions in
+ let recursive_functions = (Spec_analysis.top_sort_defs ast).defs |> get_recursive_functions in
let cdefs, ctx = jib_of_ast env ast in
let cdefs', _ = Jib_optimize.remove_tuples cdefs ctx in