From 0d2f4a416abcc44fb000758a134a38562a5d6d19 Mon Sep 17 00:00:00 2001
From: xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>
Date: Wed, 17 Oct 2007 08:55:50 +0000
Subject: [PATCH] Relaxation de la regle d'evaluation Ecast

git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@420 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
---
 cfrontend/Csem.v          | 4 ++--
 cfrontend/Cshmgenproof3.v | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/cfrontend/Csem.v b/cfrontend/Csem.v
index af601acae..8d8f88a30 100644
--- a/cfrontend/Csem.v
+++ b/cfrontend/Csem.v
@@ -562,10 +562,10 @@ Inductive eval_expr: expr -> val -> Prop :=
       eval_expr a2 v2 ->
       bool_of_val v2 (typeof a2) v ->
       eval_expr (Expr (Eandbool a1 a2) ty) v
-  | eval_Ecast:   forall a ty v1 v,
+  | eval_Ecast:   forall a ty ty' v1 v,
       eval_expr a v1 ->
       cast v1 (typeof a) ty v ->
-      eval_expr (Expr (Ecast ty a) ty) v
+      eval_expr (Expr (Ecast ty a) ty') v
 
 (** [eval_lvalue ge e m a b ofs] defines the evaluation of expression [a]
   in l-value position.  The result is the memory location [b, ofs]
diff --git a/cfrontend/Cshmgenproof3.v b/cfrontend/Cshmgenproof3.v
index 54f9b7727..2b2cefbc7 100644
--- a/cfrontend/Cshmgenproof3.v
+++ b/cfrontend/Cshmgenproof3.v
@@ -628,10 +628,10 @@ Proof.
 Qed.
 
 Lemma transl_Ecast_correct:
-  forall (a : Csyntax.expr) (ty : type) (v1 v : val),
+  forall (a : Csyntax.expr) (ty ty': type) (v1 v : val),
   Csem.eval_expr ge e m a v1 ->
   eval_expr_prop a v1 ->
-  cast v1 (typeof a) ty v -> eval_expr_prop (Expr (Ecast ty a) ty) v.
+  cast v1 (typeof a) ty v -> eval_expr_prop (Expr (Ecast ty a) ty') v.
 Proof.
   intros; red; intros. inversion WT; clear WT; subst. monadInv TR.
   eapply make_cast_correct; eauto.
-- 
GitLab