@@ -621,19 +621,16 @@ code_blockt recursive_initializationt::build_pointer_constructor(
621621 const typet &type = result.type ().subtype ();
622622 PRECONDITION (type.id () == ID_pointer);
623623
624- code_blockt body{};
624+ null_pointer_exprt nullptr_expr{pointer_type (type.subtype ())};
625+ const code_assignt assign_null{dereference_exprt{result}, nullptr_expr};
625626
626627 // always initalize void* pointers as NULL
627628 if (type.subtype ().id () == ID_empty)
628629 {
629- null_pointer_exprt nullptr_expr{pointer_type (type.subtype ())};
630- code_blockt null_and_return{};
631- code_assignt assign_null{dereference_exprt{result}, nullptr_expr};
632- null_and_return.add (assign_null);
633- null_and_return.add (code_returnt{});
634- return null_and_return;
630+ return code_blockt{{assign_null, code_returnt{}}};
635631 }
636632
633+ code_blockt body{};
637634 // build:
638635 // void type_constructor_ptr_T(int depth, T** result)
639636 // {
@@ -666,11 +663,7 @@ code_blockt recursive_initializationt::build_pointer_constructor(
666663 should_not_recurse.push_back (has_seen_expr);
667664 }
668665
669- null_pointer_exprt nullptr_expr{pointer_type (type.subtype ())};
670- code_blockt null_and_return{};
671- code_assignt assign_null{dereference_exprt{result}, nullptr_expr};
672- null_and_return.add (assign_null);
673- null_and_return.add (code_returnt{});
666+ code_blockt null_and_return{{assign_null, code_returnt{}}};
674667 body.add (code_ifthenelset{conjunction (should_not_recurse), null_and_return});
675668
676669 exprt::operandst should_recurse_ops{
0 commit comments