aboutsummaryrefslogtreecommitdiffstats
path: root/cfrontend
diff options
context:
space:
mode:
authorxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2010-04-09 12:25:03 +0000
committerxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2010-04-09 12:25:03 +0000
commitd966e01ea011fa66d5a5a7f9ffce4344e415981a (patch)
tree487a86c759777b54a9e9dda72c602348c9270920 /cfrontend
parentb66aaf2d1b90ff51f54bcd2a344a6ab50ac6fe86 (diff)
downloadcompcert-d966e01ea011fa66d5a5a7f9ffce4344e415981a.tar.gz
compcert-d966e01ea011fa66d5a5a7f9ffce4344e415981a.zip
Bug fix: infinite loop in cparser/ on bit field of size 32 bits.
Algorithmic efficiency: in cparser/, precompute sizeof and alignof of composites. Code cleanup: introduced Cutil.composite_info_{def,decl} git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1312 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'cfrontend')
-rw-r--r--cfrontend/C2Clight.ml6
1 files changed, 2 insertions, 4 deletions
diff --git a/cfrontend/C2Clight.ml b/cfrontend/C2Clight.ml
index f40e21a6..b12d60bb 100644
--- a/cfrontend/C2Clight.ml
+++ b/cfrontend/C2Clight.ml
@@ -701,11 +701,9 @@ let rec translEnv env = function
let env' =
match g.gdesc with
| C.Gcompositedecl(su, id) ->
- Env.add_composite env id
- {ci_kind = su; ci_incomplete = true; ci_members = []}
+ Env.add_composite env id (Cutil.composite_info_decl env su)
| C.Gcompositedef(su, id, fld) ->
- Env.add_composite env id
- {ci_kind = su; ci_incomplete = false; ci_members = fld}
+ Env.add_composite env id (Cutil.composite_info_def env su fld)
| C.Gtypedef(id, ty) ->
Env.add_typedef env id ty
| _ ->