aboutsummaryrefslogtreecommitdiffstats
path: root/cparser/Cutil.mli
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/Cutil.mli
parentadedca3a1ff17ff8ac66eb2bcd533a50df0927a0 (diff)
downloadcompcert-a15858a0a8fcea82db02fe8c9bd2ed912210419f.tar.gz
compcert-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/Cutil.mli')
-rw-r--r--cparser/Cutil.mli6
1 files changed, 6 insertions, 0 deletions
diff --git a/cparser/Cutil.mli b/cparser/Cutil.mli
index 9587c57b..2e61cf5d 100644
--- a/cparser/Cutil.mli
+++ b/cparser/Cutil.mli
@@ -155,6 +155,12 @@ val floatconst : float -> fkind -> exp
(* Build expression for given float constant. *)
val nullconst : exp
(* Expression for [(void * ) 0] *)
+val eaddrof : exp -> exp
+ (* Expression for [&e] *)
+val eassign : exp -> exp -> exp
+ (* Expression for [e1 = e2] *)
+val ecomma : exp -> exp -> exp
+ (* Expression for [e1, e2] *)
val sskip: stmt
(* The [skip] statement. No location. *)
val sseq : location -> stmt -> stmt -> stmt