diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2011-07-17 17:11:44 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2011-07-17 17:11:44 +0000 |
commit | 335c01eba7bfca53e9f44bbe74e9321475c4d012 (patch) | |
tree | 2761e2b795abe2d5c9595810e7e1642d6171b88d /cfrontend/Initializersproof.v | |
parent | a335e621aaa85a7f73b16c121261dbecf8e68340 (diff) | |
download | compcert-335c01eba7bfca53e9f44bbe74e9321475c4d012.tar.gz compcert-335c01eba7bfca53e9f44bbe74e9321475c4d012.zip |
Improved semantics of casts
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1685 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'cfrontend/Initializersproof.v')
-rw-r--r-- | cfrontend/Initializersproof.v | 17 |
1 files changed, 8 insertions, 9 deletions
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: |