Skip to content

Commit

Permalink
Don't generate undefined functions for bitfields without -undefined_gen
Browse files Browse the repository at this point in the history
This was producing some definitions with scary "undefined value of
unsupported type" failures that were never actually used.
  • Loading branch information
bacam committed Feb 20, 2023
1 parent 874a1f3 commit cd1b572
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions src/lib/type_check.ml
Original file line number Diff line number Diff line change
Expand Up @@ -5188,11 +5188,15 @@ let rec check_typedef : 'a. Env.t -> 'a type_def -> (tannot def) list * Env.t =
typ_error env l "Bitfield concatenation ranges are not supported"
) Bindings.empty ranges
in
let defs, env =
let defs =
(DEF_type (TD_aux (record_tdef, (l, ()))) :: Bitfield.macro id size order ranges)
|> Initial_check.generate_undefineds IdSet.empty
|> check_defs env
in
let defs =
if !Initial_check.opt_undefined_gen
then Initial_check.generate_undefineds IdSet.empty defs
else defs
in
let defs, env = check_defs env defs in
let env = Env.add_bitfield id ranges env in
if !opt_no_bitfield_expansion
then [DEF_type (TD_aux (unexpanded, (l, None)))], env
Expand Down

0 comments on commit cd1b572

Please sign in to comment.