From 054ce39caf060408f6555bcd0b6d90b5bf4c00c5 Mon Sep 17 00:00:00 2001 From: xleroy Date: Wed, 8 May 2013 07:59:10 +0000 Subject: Missing case: initialization of a global variable of type _Bool. Added corresponding test case. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2242 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- cfrontend/Initializers.v | 2 +- cfrontend/Initializersproof.v | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'cfrontend') diff --git a/cfrontend/Initializers.v b/cfrontend/Initializers.v index 657f607..cb2f132 100644 --- a/cfrontend/Initializers.v +++ b/cfrontend/Initializers.v @@ -147,7 +147,7 @@ Definition transl_init_single (ty: type) (a: expr) : res init_data := do v1 <- constval a; do v2 <- do_cast v1 (typeof a) ty; match v2, ty with - | Vint n, Tint I8 sg _ => OK(Init_int8 n) + | Vint n, Tint (I8|IBool) sg _ => OK(Init_int8 n) | Vint n, Tint I16 sg _ => OK(Init_int16 n) | Vint n, Tint I32 sg _ => OK(Init_int32 n) | Vint n, Tpointer _ _ => OK(Init_int32 n) diff --git a/cfrontend/Initializersproof.v b/cfrontend/Initializersproof.v index c2ca135..2f29514 100644 --- a/cfrontend/Initializersproof.v +++ b/cfrontend/Initializersproof.v @@ -504,6 +504,7 @@ Proof. destruct s; simpl in H2; inv H2. rewrite <- Mem.store_signed_unsigned_8; auto. auto. destruct s; simpl in H2; inv H2. rewrite <- Mem.store_signed_unsigned_16; auto. auto. simpl in H2; inv H2. assumption. + simpl in H2; inv H2. assumption. inv EQ2. simpl in H2; inv H2. assumption. (* long *) destruct ty; inv EQ2. simpl in H2; inv H2. assumption. -- cgit v1.2.3