diff options
author | Bernhard Schommer <bernhardschommer@gmail.com> | 2016-01-25 10:03:11 +0100 |
---|---|---|
committer | Bernhard Schommer <bernhardschommer@gmail.com> | 2016-01-25 10:03:11 +0100 |
commit | 4467453e0edca993c175690b7141d4916af3dc19 (patch) | |
tree | 15bd43200c36a5bc5d57c87a3e1220e378df07aa /driver | |
parent | 507f000343636e1e300b1f3af71177726926292c (diff) | |
download | compcert-4467453e0edca993c175690b7141d4916af3dc19.tar.gz compcert-4467453e0edca993c175690b7141d4916af3dc19.zip |
Started implementing a printer for Clflags.
Diffstat (limited to 'driver')
-rw-r--r-- | driver/Clflagsprinter.ml | 41 | ||||
-rw-r--r-- | driver/Driver.ml | 1 |
2 files changed, 42 insertions, 0 deletions
diff --git a/driver/Clflagsprinter.ml b/driver/Clflagsprinter.ml new file mode 100644 index 00000000..11dcc818 --- /dev/null +++ b/driver/Clflagsprinter.ml @@ -0,0 +1,41 @@ +(* *********************************************************************) +(* *) +(* The Compcert verified compiler *) +(* *) +(* Bernhard Schommer, AbsInt Angewandte Informatik GmbH *) +(* *) +(* AbsInt Angewandte Informatik GmbH. All rights reserved. This file *) +(* is distributed under the terms of the INRIA Non-Commercial *) +(* License Agreement. *) +(* *) +(* *********************************************************************) + +open Clflags +open Json +open Printf + +let print_member oc name p_mem mem = + fprintf oc "\n%a:%a" p_jstring name p_mem mem + +let print_list oc name l = + print_member oc name (p_jarray p_jstring) l + +let print oc ((): unit) = + fprintf oc "{"; + print_list oc "Preprocessor Options" !prepro_options; + print_list oc "Linker Options" !linker_options; + print_list oc "Assembler Options" !assembler_options; + print_member oc "Flongdouble" p_jbool !option_flongdouble; + print_member oc "Fstruct_passing" p_jbool !option_fstruct_passing; + print_member oc "Fbitfields" p_jbool !option_fbitfields; + print_member oc "Fvarag_calls" p_jbool !option_fvararg_calls; + print_member oc "Funprototyped" p_jbool !option_funprototyped; + print_member oc "Fpacked_structs" p_jbool !option_fpacked_structs; + print_member oc "Ffpu" p_jbool !option_ffpu; + print_member oc "Ffloatconstprop" p_jint !option_ffloatconstprop; + print_member oc "Ftailcalls" p_jbool !option_ftailcalls; + print_member oc "Fconstprop" p_jbool !option_fconstprop; + print_member oc "Fcse" p_jbool !option_fcse; + print_member oc "Fredundance" p_jbool !option_fredundancy; + + fprintf oc "\n}" diff --git a/driver/Driver.ml b/driver/Driver.ml index 78d141c1..d827fd94 100644 --- a/driver/Driver.ml +++ b/driver/Driver.ml @@ -14,6 +14,7 @@ open Printf open Commandline open Camlcoq open Clflags +open Clflagsprinter open Timing (* Location of the compatibility library *) |