aboutsummaryrefslogtreecommitdiffstats
path: root/cparser/Cutil.ml
diff options
context:
space:
mode:
Diffstat (limited to 'cparser/Cutil.ml')
-rw-r--r--cparser/Cutil.ml11
1 files changed, 11 insertions, 0 deletions
diff --git a/cparser/Cutil.ml b/cparser/Cutil.ml
index 3e2dff36..dcafbea4 100644
--- a/cparser/Cutil.ml
+++ b/cparser/Cutil.ml
@@ -1048,6 +1048,17 @@ let is_bitfield env e =
fld.fld_bitfield <> None
| _ -> false
+let contains_flex_array_mem env ty =
+ match unroll env ty with
+ | TStruct (id,_) ->
+ let ci = Env.find_struct env id in
+ let rec check_mem = function
+ | [] -> false
+ | [ { fld_typ = TArray(ty_elt, None, _) } ] -> true
+ | _::rem -> check_mem rem in
+ check_mem ci.ci_members
+ | _ -> false
+
(* Assignment compatibility check over attributes.
Standard attributes ("const", "volatile", "restrict") can safely
be added (to the rhs type to get the lhs type) but must not be dropped.