summaryrefslogtreecommitdiff
path: root/src/c_backend.ml
diff options
context:
space:
mode:
Diffstat (limited to 'src/c_backend.ml')
-rw-r--r--src/c_backend.ml13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/c_backend.ml b/src/c_backend.ml
index 94d29c21..57921e3f 100644
--- a/src/c_backend.ml
+++ b/src/c_backend.ml
@@ -64,6 +64,7 @@ let c_verbosity = ref 0
let opt_ddump_flow_graphs = ref false
let opt_trace = ref false
let opt_static = ref false
+let opt_no_main = ref false
(* Optimization flags *)
let optimize_primops = ref false
@@ -3094,8 +3095,8 @@ let compile_ast ctx c_includes (Defs defs) =
"}" ] ))
in
- let model_main = separate hardline (List.map string
- [ "int main(int argc, char *argv[])";
+ let model_default_main = separate hardline (List.map string
+ [ "int model_main(int argc, char *argv[])";
"{";
" model_init();";
" if (process_arguments(argc, argv)) exit(EXIT_FAILURE);";
@@ -3105,11 +3106,19 @@ let compile_ast ctx c_includes (Defs defs) =
"}" ] )
in
+ let model_main = separate hardline (if (!opt_no_main) then [] else List.map string
+ [ "int main(int argc, char *argv[])";
+ "{";
+ " return model_main(argc, argv);";
+ "}" ] )
+ in
+
let hlhl = hardline ^^ hardline in
Pretty_print_sail.to_string (preamble ^^ hlhl ^^ separate hlhl docs ^^ hlhl
^^ model_init ^^ hlhl
^^ model_fini ^^ hlhl
+ ^^ model_default_main ^^ hlhl
^^ model_main)
|> print_endline
with