From a15858a0a8fcea82db02fe8c9bd2ed912210419f Mon Sep 17 00:00:00 2001 From: xleroy Date: Wed, 18 Aug 2010 09:06:55 +0000 Subject: 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 --- cparser/Cutil.mli | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'cparser/Cutil.mli') 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 -- cgit