Skip to content

Commit b727c58

Browse files
author
Thomas Kiley
committed
Combine code for assigning null pointer
Reduces duplication between the code that produces the different branches that return null
1 parent baecd63 commit b727c58

File tree

1 file changed

+5
-12
lines changed

1 file changed

+5
-12
lines changed

src/goto-harness/recursive_initialization.cpp

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)