Skip to content

Commit cd3bdba

Browse files
author
Daniel Kroening
committed
codet now inherits from irept
1 parent 78937f1 commit cd3bdba

18 files changed

+263
-127
lines changed

src/ansi-c/c_typecheck_code.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ void c_typecheck_baset::typecheck_code(codet &code)
3030
throw 0;
3131
}
3232

33-
code.type()=code_typet();
34-
3533
const irep_idt &statement=code.get_statement();
3634

3735
if(statement==ID_expression)

src/ansi-c/c_typecheck_expr.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -773,7 +773,7 @@ void c_typecheck_baset::typecheck_expr_operands(exprt &expr)
773773
code_declt decl(symbol.symbol_expr());
774774
decl.add_source_location()=declaration.source_location();
775775

776-
expr.op0()=decl;
776+
expr.get_sub()[0] = decl;
777777

778778
typecheck_expr(expr.op1());
779779
}
@@ -1021,7 +1021,7 @@ void c_typecheck_baset::typecheck_expr_sizeof(exprt &expr)
10211021
ID_statement_expression, void_type(), expr.source_location());
10221022
auto decl_block=code_blockt::from_list(clean_code);
10231023
decl_block.set_statement(ID_decl_block);
1024-
side_effect_expr.copy_to_operands(decl_block);
1024+
side_effect_expr.get_sub().push_back(decl_block);
10251025
clean_code.clear();
10261026

10271027
// We merge the side-effect into the operand of the typecast,
@@ -1078,7 +1078,7 @@ void c_typecheck_baset::typecheck_expr_typecast(exprt &expr)
10781078
ID_statement_expression, void_type(), expr.source_location());
10791079
auto decl_block=code_blockt::from_list(clean_code);
10801080
decl_block.set_statement(ID_decl_block);
1081-
side_effect_expr.copy_to_operands(decl_block);
1081+
side_effect_expr.get_sub().push_back(decl_block);
10821082
clean_code.clear();
10831083

10841084
// We merge the side-effect into the operand of the typecast,

src/cpp/cpp_destructor.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ optionalt<codet> cpp_typecheckt::cpp_destructor(
5353
throw 0;
5454
}
5555

56-
new_code.type().id(ID_code);
5756
new_code.add_source_location()=source_location;
5857
new_code.set_statement(ID_block);
5958

@@ -68,7 +67,7 @@ optionalt<codet> cpp_typecheckt::cpp_destructor(
6867

6968
auto i_code = cpp_destructor(source_location, index);
7069
if(i_code.has_value())
71-
new_code.move_to_operands(i_code.value());
70+
to_code_block(new_code).add(i_code.value());
7271
}
7372
}
7473
else

src/cpp/cpp_typecheck_code.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,10 @@ void cpp_typecheckt::typecheck_code(codet &code)
2525

2626
if(statement==ID_try_catch)
2727
{
28-
code.type() = code_typet({}, empty_typet());
2928
typecheck_try_catch(code);
3029
}
3130
else if(statement==ID_member_initializer)
3231
{
33-
code.type() = code_typet({}, empty_typet());
3432
typecheck_member_initializer(code);
3533
}
3634
else if(statement==ID_msc_if_exists ||
@@ -418,7 +416,7 @@ void cpp_typecheckt::typecheck_decl(codet &code)
418416
"declarator type should match symbol type");
419417
}
420418

421-
new_code.move_to_operands(decl_statement);
419+
new_code.add_to_operands(std::move(decl_statement));
422420

423421
// is there a constructor to be called?
424422
if(symbol.value.is_not_nil())
@@ -439,7 +437,7 @@ void cpp_typecheckt::typecheck_decl(codet &code)
439437
symbol.location, object_expr, declarator.init_args().operands());
440438

441439
if(constructor_call.has_value())
442-
new_code.move_to_operands(constructor_call.value());
440+
new_code.add_to_operands(std::move(constructor_call.value()));
443441
}
444442
}
445443

src/cpp/cpp_typecheck_compound_type.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -666,14 +666,16 @@ void cpp_typecheckt::typecheck_compound_declarator(
666666
exprt already_typechecked(ID_already_typechecked);
667667
already_typechecked.move_to_operands(expr_call);
668668

669-
func_symb.value = code_returnt(already_typechecked).make_block();
669+
func_symb.value =
670+
code_returnt(already_typechecked).make_block().as_expr();
670671
}
671672
else
672673
{
673674
exprt already_typechecked(ID_already_typechecked);
674675
already_typechecked.move_to_operands(expr_call);
675676

676-
func_symb.value = code_expressiont(already_typechecked).make_block();
677+
func_symb.value =
678+
code_expressiont(already_typechecked).make_block().as_expr();
677679
}
678680

679681
// add this new function to the list of components

src/cpp/cpp_typecheck_constructor.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ static void copy_parent(
4747
code_assignt code(dereference_exprt(op0), op1);
4848
code.add_source_location() = source_location;
4949

50-
block.operands().push_back(code);
50+
block.operands().push_back(code.as_expr());
5151
}
5252

5353
/// Generate code to copy the member.
@@ -76,7 +76,7 @@ static void copy_member(
7676
code_expressiont code(assign);
7777
code.add_source_location() = source_location;
7878

79-
block.operands().push_back(code);
79+
block.operands().push_back(code.as_expr());
8080
}
8181

8282
/// Generate code to copy the member.
@@ -113,7 +113,7 @@ static void copy_array(
113113
code_expressiont code(assign);
114114
code.add_source_location() = source_location;
115115

116-
block.operands().push_back(code);
116+
block.operands().push_back(code.as_expr());
117117
}
118118

119119
/// Generate code for implicit default constructors
@@ -590,7 +590,7 @@ void cpp_typecheckt::full_member_initialization(
590590
}
591591
vbases.pop_front();
592592
}
593-
cond.move_to_operands(block);
593+
cond.add_to_operands(block.as_expr());
594594
final_initializers.move_to_sub(cond);
595595
}
596596

@@ -680,7 +680,7 @@ void cpp_typecheckt::full_member_initialization(
680680
{
681681
codet tmp(ID_member_initializer);
682682
tmp.swap(final_initializers.get_sub().back());
683-
cond.move_to_operands(tmp);
683+
cond.add_to_operands(tmp.as_expr());
684684
final_initializers.get_sub().back().swap(cond);
685685
}
686686
}

src/cpp/cpp_typecheck_declaration.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ void cpp_typecheckt::convert_anonymous_union(
5959

6060
code_declt decl_statement(cpp_symbol_expr(symbol));
6161

62-
new_code.move_to_operands(decl_statement);
62+
new_code.add_to_operands(decl_statement);
6363

6464
// do scoping
6565
symbolt union_symbol=
@@ -178,7 +178,7 @@ void cpp_typecheckt::convert_non_template_declaration(
178178
declarator.init_args().operands());
179179

180180
if(constructor.has_value())
181-
symbol.value = constructor.value();
181+
symbol.value = constructor.value().as_expr();
182182
else
183183
symbol.value = nil_exprt();
184184
}

src/cpp/cpp_typecheck_function.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ void cpp_typecheckt::convert_function(symbolt &symbol)
102102
!symbol.value.has_operands() || !symbol.value.op0().has_operands() ||
103103
symbol.value.op0().op0().id() != ID_already_typechecked)
104104
{
105-
symbol.value.copy_to_operands(dtor(msymb));
105+
symbol.value.copy_to_operands(dtor(msymb).as_expr());
106106
}
107107
}
108108

src/cpp/cpp_typecheck_initializer.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ void cpp_typecheckt::convert_initializer(symbolt &symbol)
183183
cpp_constructor(symbol.value.source_location(), expr_symbol, ops);
184184

185185
if(constructor.has_value())
186-
symbol.value = constructor.value();
186+
symbol.value = constructor.value().as_expr();
187187
else
188188
symbol.value = nil_exprt();
189189
}
@@ -292,7 +292,7 @@ void cpp_typecheckt::zero_initializer(
292292
already_typechecked(assign.lhs());
293293

294294
typecheck_code(assign);
295-
ops.push_back(assign);
295+
ops.push_back(assign.as_expr());
296296
}
297297
else if(final_type.id()==ID_incomplete_struct ||
298298
final_type.id()==ID_incomplete_union)
@@ -320,6 +320,6 @@ void cpp_typecheckt::zero_initializer(
320320
already_typechecked(assign.lhs());
321321

322322
typecheck_code(assign);
323-
ops.push_back(assign);
323+
ops.push_back(assign.as_expr());
324324
}
325325
}

src/cpp/expr2cpp.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -441,15 +441,15 @@ std::string expr2cppt::convert_code(
441441
const codet &src,
442442
unsigned indent)
443443
{
444-
const irep_idt &statement=src.get(ID_statement);
444+
const irep_idt &statement = src.get_statement();
445445

446446
if(statement==ID_cpp_delete ||
447447
statement==ID_cpp_delete_array)
448-
return convert_code_cpp_delete(src, indent);
448+
return convert_code_cpp_delete(src.as_expr(), indent);
449449

450450
if(statement==ID_cpp_new ||
451451
statement==ID_cpp_new_array)
452-
return convert_cpp_new(src, indent);
452+
return convert_cpp_new(src.as_expr(), indent);
453453

454454
return expr2ct::convert_code(src, indent);
455455
}

0 commit comments

Comments
 (0)