diff options
author | Bernhard Schommer <bernhardschommer@gmail.com> | 2016-12-29 20:33:02 +0100 |
---|---|---|
committer | Bernhard Schommer <bernhardschommer@gmail.com> | 2016-12-29 20:33:02 +0100 |
commit | 79b9d8dfdda36e7c778b8f24f894caf900cdcd57 (patch) | |
tree | 54d1d0fd8d76358a5d79fe735277f1aacbfa6ab8 /cparser | |
parent | 9ce615dce4fecbff4664e73afd0d896efd77fe20 (diff) | |
download | compcert-79b9d8dfdda36e7c778b8f24f894caf900cdcd57.tar.gz compcert-79b9d8dfdda36e7c778b8f24f894caf900cdcd57.zip |
Allow multiple nameless bit field fields.
Diffstat (limited to 'cparser')
-rw-r--r-- | cparser/Elab.ml | 6 |
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 |