aboutsummaryrefslogtreecommitdiffstats
path: root/cfrontend/Initializersproof.v
diff options
context:
space:
mode:
authorxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2011-07-17 17:11:44 +0000
committerxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2011-07-17 17:11:44 +0000
commit335c01eba7bfca53e9f44bbe74e9321475c4d012 (patch)
tree2761e2b795abe2d5c9595810e7e1642d6171b88d /cfrontend/Initializersproof.v
parenta335e621aaa85a7f73b16c121261dbecf8e68340 (diff)
downloadcompcert-kvx-335c01eba7bfca53e9f44bbe74e9321475c4d012.tar.gz
compcert-kvx-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.v17
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: