diff options
-rw-r--r-- | cparser/Cflow.ml | 1 | ||||
-rw-r--r-- | cparser/Cutil.ml | 21 |
2 files changed, 5 insertions, 17 deletions
diff --git a/cparser/Cflow.ml b/cparser/Cflow.ml index f5408c15..790d9079 100644 --- a/cparser/Cflow.ml +++ b/cparser/Cflow.ml @@ -117,6 +117,7 @@ let resolve_test env e = match Ceval.integer_expr env e with | None -> None | Some n -> Some (n <> 0L) + | exception Env.Error _ -> None (* Any error due to local types should be ignored *) let if_ env e (s1: flow) (s2: flow) : flow = match resolve_test env e with diff --git a/cparser/Cutil.ml b/cparser/Cutil.ml index 903fd34c..6cafaf17 100644 --- a/cparser/Cutil.ml +++ b/cparser/Cutil.ml @@ -435,13 +435,6 @@ let alignof_fkind = function let enum_ikind = IInt -let wrap_alignof f env name = - try - let ci = f env name in - ci.ci_alignof - with Env.Error _ -> None - - let rec alignof env t = let a = alignas_attribute (attributes_of_type env t) in if a > 0 then Some a else @@ -454,9 +447,9 @@ let rec alignof env t = | TFun(_, _, _, _) -> !config.alignof_fun | TNamed(_, _) -> alignof env (unroll env t) | TStruct(name, _) -> - wrap_alignof Env.find_struct env name + let ci = Env.find_struct env name in ci.ci_alignof | TUnion(name, _) -> - wrap_alignof Env.find_union env name + let ci = Env.find_union env name in ci.ci_alignof | TEnum(_, _) -> Some(alignof_ikind enum_ikind) (* Compute the natural alignment of a struct or union. *) @@ -501,12 +494,6 @@ let cautious_mul (a: int64) (b: int) = then Some(Int64.to_int a * b) else None -let wrap_sizeof f env name = - try - let ci = f env name in - ci.ci_sizeof - with Env.Error _ -> None - (* Return size of type, in bytes, or [None] if the type is incomplete *) let rec sizeof env t = @@ -527,9 +514,9 @@ let rec sizeof env t = | TFun(_, _, _, _) -> !config.sizeof_fun | TNamed(_, _) -> sizeof env (unroll env t) | TStruct(name, _) -> - wrap_sizeof Env.find_struct env name + let ci = Env.find_struct env name in ci.ci_sizeof | TUnion(name, _) -> - wrap_sizeof Env.find_union env name + let ci = Env.find_union env name in ci.ci_sizeof | TEnum(_, _) -> Some(sizeof_ikind enum_ikind) (* Compute the size of a union. |