aboutsummaryrefslogtreecommitdiffstats
path: root/driver/Frontend.ml
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@college-de-france.fr>2022-09-27 12:04:31 +0200
committerXavier Leroy <xavier.leroy@college-de-france.fr>2022-09-27 12:04:31 +0200
commitefc51afc7c8298ecd3b511b8d0faf9ff6d2df22e (patch)
tree232bf0f11a5fbc6a8f1c219f1234fad452a38b80 /driver/Frontend.ml
parenta1f01c844aaa0ff41aa9095e9d5d01606a0e90c9 (diff)
downloadcompcert-efc51afc7c8298ecd3b511b8d0faf9ff6d2df22e.tar.gz
compcert-efc51afc7c8298ecd3b511b8d0faf9ff6d2df22e.zip
Revised passing of options to `Parse.preprocessed_file`
Instead of passing a string that encodes the optional source-to-source transformations to perform, just pass one optional, named argument for each transformation. It is clearer and easier to extend this way.
Diffstat (limited to 'driver/Frontend.ml')
-rw-r--r--driver/Frontend.ml12
1 files changed, 5 insertions, 7 deletions
diff --git a/driver/Frontend.ml b/driver/Frontend.ml
index 5d45306d..5132f730 100644
--- a/driver/Frontend.ml
+++ b/driver/Frontend.ml
@@ -79,14 +79,12 @@ let parse_c_file sourcename ifile =
Debug.init_compile_unit sourcename;
Sections.initialize();
CPragmas.reset();
- (* Simplification options *)
- let simplifs =
- "b" (* blocks: mandatory *)
- ^ (if !option_fstruct_passing then "s" else "")
- ^ (if !option_fpacked_structs then "p" else "")
- in
(* Parsing and production of a simplified C AST *)
- let ast = Parse.preprocessed_file simplifs sourcename ifile in
+ let ast = Parse.preprocessed_file
+ ~unblock: true
+ ~struct_passing: !option_fstruct_passing
+ ~packed_structs: !option_fpacked_structs
+ sourcename ifile in
(* Save C AST if requested *)
Cprint.print_if ast;
(* Conversion to Csyntax *)