From cd1b572a109d9f4a73255cde50ddff4c7f1cc7d6 Mon Sep 17 00:00:00 2001 From: Brian Campbell Date: Mon, 20 Feb 2023 17:53:42 +0000 Subject: [PATCH] Don't generate undefined functions for bitfields without -undefined_gen This was producing some definitions with scary "undefined value of unsupported type" failures that were never actually used. --- src/lib/type_check.ml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/lib/type_check.ml b/src/lib/type_check.ml index 9c0e107a5..99be40f6d 100644 --- a/src/lib/type_check.ml +++ b/src/lib/type_check.ml @@ -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