diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2006-09-11 16:03:02 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2006-09-11 16:03:02 +0000 |
commit | be43363d309cea62731e04ad10dddf3ecafcacd1 (patch) | |
tree | f66c346d51df74d6b6ee34f654178a44250a33c8 /cfrontend/Csem.v | |
parent | 5e8237152cad0cf08d3eea0d5de8cd8bc499df69 (diff) | |
download | compcert-be43363d309cea62731e04ad10dddf3ecafcacd1.tar.gz compcert-be43363d309cea62731e04ad10dddf3ecafcacd1.zip |
Revu traitement des structures et unions recursives. Dans Cshmgen, meilleure compilation de exit_if_false.
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@94 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'cfrontend/Csem.v')
-rw-r--r-- | cfrontend/Csem.v | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/cfrontend/Csem.v b/cfrontend/Csem.v index 5431697f..4cc85559 100644 --- a/cfrontend/Csem.v +++ b/cfrontend/Csem.v @@ -556,15 +556,15 @@ with eval_lvalue: env -> mem -> expr -> trace -> mem -> block -> int -> Prop := sem_add v1 (typeof a1) v2 (typeof a2) = Some (Vptr l ofs) -> eval_lvalue e m (Expr (Eindex a1 a2) ty) (t1 ** t2) m2 l ofs - | eval_Efield_struct: forall e m a t m1 l ofs fList i ty delta, + | eval_Efield_struct: forall e m a t m1 l ofs id fList i ty delta, eval_lvalue e m a t m1 l ofs -> - typeof a = Tstruct fList -> + typeof a = Tstruct id fList -> field_offset i fList = Some delta -> eval_lvalue e m (Expr (Efield a i) ty) t m1 l (Int.add ofs (Int.repr delta)) - | eval_Efield_union: forall e m a t m1 l ofs fList i ty, + | eval_Efield_union: forall e m a t m1 l ofs id fList i ty, eval_lvalue e m a t m1 l ofs -> - typeof a = Tunion fList -> + typeof a = Tunion id fList -> eval_lvalue e m (Expr (Efield a i) ty) t m1 l ofs |