aboutsummaryrefslogtreecommitdiffstats
path: root/cparser/Parse.ml
diff options
context:
space:
mode:
authorxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2010-08-18 09:06:55 +0000
committerxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2010-08-18 09:06:55 +0000
commita15858a0a8fcea82db02fe8c9bd2ed912210419f (patch)
tree5c0c19439f0d0f9e8873ce0dad2034cb9cafc4ba /cparser/Parse.ml
parentadedca3a1ff17ff8ac66eb2bcd533a50df0927a0 (diff)
downloadcompcert-kvx-a15858a0a8fcea82db02fe8c9bd2ed912210419f.tar.gz
compcert-kvx-a15858a0a8fcea82db02fe8c9bd2ed912210419f.zip
Merge of branches/full-expr-4:
- Csyntax, Csem: source C language has side-effects within expressions, performs implicit casts, and has nondeterministic reduction semantics for expressions - Cstrategy: deterministic red. sem. for the above - Clight: the previous source C language, with pure expressions. Added: temporary variables + implicit casts. - New pass SimplExpr to pull side-effects out of expressions (previously done in untrusted Caml code in cparser/) - Csharpminor: added temporary variables to match Clight. - Cminorgen: adapted, removed cast optimization (moved to back-end) - CastOptim: RTL-level optimization of casts - cparser: transformations Bitfields, StructByValue and StructAssign now work on non-simplified expressions - Added pretty-printers for several intermediate languages, and matching -dxxx command-line flags. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1467 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'cparser/Parse.ml')
-rw-r--r--cparser/Parse.ml6
1 files changed, 3 insertions, 3 deletions
diff --git a/cparser/Parse.ml b/cparser/Parse.ml
index 7dcc8d1d..ed988f9a 100644
--- a/cparser/Parse.ml
+++ b/cparser/Parse.ml
@@ -21,10 +21,10 @@ let transform_program t p =
let run_pass pass flag p = if CharSet.mem flag t then pass p else p in
Rename.program
(run_pass (AddCasts.program ~all:(CharSet.mem 'C' t)) 'c'
+ (run_pass (SimplExpr.program ~volatile:(CharSet.mem 'v' t)) 'e'
(run_pass StructAssign.program 'S'
(run_pass StructByValue.program 's'
(run_pass Bitfields.program 'f'
- (run_pass (SimplExpr.program ~volatile:(CharSet.mem 'v' t)) 'e'
(run_pass Unblock.program 'b'
p))))))
@@ -37,9 +37,9 @@ let parse_transformations s =
| 'c' -> set "ec"
| 'C' -> set "ecC"
| 's' -> set "s"
- | 'S' -> set "esS"
+ | 'S' -> set "bsS"
| 'v' -> set "ev"
- | 'f' -> set "bef"
+ | 'f' -> set "bf"
| _ -> ())
s;
!t