aboutsummaryrefslogtreecommitdiffstats
path: root/cparser
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2016-12-29 20:33:02 +0100
committerBernhard Schommer <bernhardschommer@gmail.com>2016-12-29 20:33:02 +0100
commit79b9d8dfdda36e7c778b8f24f894caf900cdcd57 (patch)
tree54d1d0fd8d76358a5d79fe735277f1aacbfa6ab8 /cparser
parent9ce615dce4fecbff4664e73afd0d896efd77fe20 (diff)
downloadcompcert-79b9d8dfdda36e7c778b8f24f894caf900cdcd57.tar.gz
compcert-79b9d8dfdda36e7c778b8f24f894caf900cdcd57.zip
Allow multiple nameless bit field fields.
Diffstat (limited to 'cparser')
-rw-r--r--cparser/Elab.ml6
1 files changed, 4 insertions, 2 deletions
diff --git a/cparser/Elab.ml b/cparser/Elab.ml
index 845fc210..1bfc2d11 100644
--- a/cparser/Elab.ml
+++ b/cparser/Elab.ml
@@ -849,10 +849,12 @@ and elab_struct_or_union_info keep_ty kind loc env members attrs =
union.ci_members@rest
| _ -> rest in
duplicate acc rest
- end else begin
+ end else if fld.fld_name <> "" then begin
if List.exists ((=) fld.fld_name) acc then
error loc "duplicate member '%s'" fld.fld_name;
- duplicate (fld.fld_name::acc) rest end in
+ duplicate (fld.fld_name::acc) rest
+ end else
+ duplicate acc rest in
duplicate [] m;
(* Check for incomplete types *)
let rec check_incomplete = function