From 335c01eba7bfca53e9f44bbe74e9321475c4d012 Mon Sep 17 00:00:00 2001 From: xleroy Date: Sun, 17 Jul 2011 17:11:44 +0000 Subject: Improved semantics of casts git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1685 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- cfrontend/Initializersproof.v | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'cfrontend/Initializersproof.v') diff --git a/cfrontend/Initializersproof.v b/cfrontend/Initializersproof.v index d321ac58..6563a352 100644 --- a/cfrontend/Initializersproof.v +++ b/cfrontend/Initializersproof.v @@ -399,15 +399,14 @@ Lemma sem_cast_match: match_val v2' v2. Proof. intros. unfold do_cast in H1. destruct (sem_cast v1' ty1 ty2) as [v2''|] _eqn; inv H1. - inv H0. - replace v2' with v2 by congruence. - functional inversion H; subst; constructor. - replace v2' with v2 by congruence. - functional inversion H; subst; constructor. - simpl in H; simpl in Heqo. - destruct (neutral_for_cast ty1 && neutral_for_cast ty2); inv H; inv Heqo. - constructor; auto. - functional inversion H. + unfold sem_cast in H; functional inversion Heqo; subst. + rewrite H2 in H. inv H0. inv H. constructor. + rewrite H2 in H. inv H0. inv H. constructor; auto. + rewrite H2 in H. inv H0. inv H. constructor. + rewrite H2 in H. inv H0. inv H. constructor. + rewrite H2 in H. inv H0. inv H. constructor. + rewrite H2 in H. inv H0. destruct (cast_float_int si2 f); inv H. inv H7. constructor. + rewrite H5 in H. inv H. auto. Qed. Lemma bool_val_match: -- cgit