aboutsummaryrefslogtreecommitdiffstats
path: root/driver
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2016-01-25 10:03:11 +0100
committerBernhard Schommer <bernhardschommer@gmail.com>2016-01-25 10:03:11 +0100
commit4467453e0edca993c175690b7141d4916af3dc19 (patch)
tree15bd43200c36a5bc5d57c87a3e1220e378df07aa /driver
parent507f000343636e1e300b1f3af71177726926292c (diff)
downloadcompcert-4467453e0edca993c175690b7141d4916af3dc19.tar.gz
compcert-4467453e0edca993c175690b7141d4916af3dc19.zip
Started implementing a printer for Clflags.
Diffstat (limited to 'driver')
-rw-r--r--driver/Clflagsprinter.ml41
-rw-r--r--driver/Driver.ml1
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 *)