@@ -364,7 +364,7 @@ template<> inline bool can_cast_expr<code_assignt>(const exprt &base)
364
364
365
365
inline void validate_expr (const code_assignt & x)
366
366
{
367
- validate_operands (x, 2 , " assignment must have two operands " );
367
+ code_assignt::check (x );
368
368
}
369
369
370
370
inline const code_assignt &to_code_assign (const codet &code)
@@ -432,29 +432,20 @@ template<> inline bool can_cast_expr<code_declt>(const exprt &base)
432
432
433
433
inline void validate_expr (const code_declt &x)
434
434
{
435
- validate_operands (x, 1 , " decls must have one or more operands " , true );
435
+ code_declt::check (x );
436
436
}
437
437
438
438
inline const code_declt &to_code_decl (const codet &code)
439
439
{
440
440
PRECONDITION (code.get_statement () == ID_decl);
441
-
442
- // will be size()==1 in the future
443
- DATA_INVARIANT (
444
- code.operands ().size () >= 1 , " decls must have one or more operands" );
445
- DATA_INVARIANT (
446
- code.op0 ().id () == ID_symbol, " decls symbols must be a \" symbol\" " );
447
-
441
+ code_declt::check (code);
448
442
return static_cast <const code_declt &>(code);
449
443
}
450
444
451
445
inline code_declt &to_code_decl (codet &code)
452
446
{
453
447
PRECONDITION (code.get_statement () == ID_decl);
454
-
455
- // will be size()==1 in the future
456
- DATA_INVARIANT (
457
- code.operands ().size () >= 1 , " decls must have one or more operands" );
448
+ code_declt::check (code);
458
449
return static_cast <code_declt &>(code);
459
450
}
460
451
@@ -510,28 +501,20 @@ template<> inline bool can_cast_expr<code_deadt>(const exprt &base)
510
501
511
502
inline void validate_expr (const code_deadt &x)
512
503
{
513
- validate_operands (x, 1 , " dead statement must have one operand " );
504
+ code_deadt::check (x );
514
505
}
515
506
516
507
inline const code_deadt &to_code_dead (const codet &code)
517
508
{
518
509
PRECONDITION (code.get_statement () == ID_dead);
519
- DATA_INVARIANT (
520
- code.operands ().size () == 1 , " dead statement must have one operand" );
521
- DATA_INVARIANT (
522
- to_unary_expr (code).op ().id () == ID_symbol,
523
- " dead statement must take symbol operand" );
510
+ code_deadt::check (code);
524
511
return static_cast <const code_deadt &>(code);
525
512
}
526
513
527
514
inline code_deadt &to_code_dead (codet &code)
528
515
{
529
516
PRECONDITION (code.get_statement () == ID_dead);
530
- DATA_INVARIANT (
531
- code.operands ().size () == 1 , " dead statement must have one operand" );
532
- DATA_INVARIANT (
533
- to_unary_expr (code).op ().id () == ID_symbol,
534
- " dead statement must take symbol operand" );
517
+ code_deadt::check (code);
535
518
return static_cast <code_deadt &>(code);
536
519
}
537
520
@@ -1242,18 +1225,20 @@ template<> inline bool can_cast_expr<code_function_callt>(const exprt &base)
1242
1225
1243
1226
inline void validate_expr (const code_function_callt &x)
1244
1227
{
1245
- validate_operands (x, 3 , " function calls must have three operands " );
1228
+ code_function_callt::check (x );
1246
1229
}
1247
1230
1248
1231
inline const code_function_callt &to_code_function_call (const codet &code)
1249
1232
{
1250
1233
PRECONDITION (code.get_statement () == ID_function_call);
1234
+ code_function_callt::check (code);
1251
1235
return static_cast <const code_function_callt &>(code);
1252
1236
}
1253
1237
1254
1238
inline code_function_callt &to_code_function_call (codet &code)
1255
1239
{
1256
1240
PRECONDITION (code.get_statement () == ID_function_call);
1241
+ code_function_callt::check (code);
1257
1242
return static_cast <code_function_callt &>(code);
1258
1243
}
1259
1244
@@ -1305,18 +1290,20 @@ template<> inline bool can_cast_expr<code_returnt>(const exprt &base)
1305
1290
1306
1291
inline void validate_expr (const code_returnt &x)
1307
1292
{
1308
- validate_operands (x, 1 , " return must have one operand " );
1293
+ code_returnt::check (x );
1309
1294
}
1310
1295
1311
1296
inline const code_returnt &to_code_return (const codet &code)
1312
1297
{
1313
1298
PRECONDITION (code.get_statement () == ID_return);
1299
+ code_returnt::check (code);
1314
1300
return static_cast <const code_returnt &>(code);
1315
1301
}
1316
1302
1317
1303
inline code_returnt &to_code_return (codet &code)
1318
1304
{
1319
1305
PRECONDITION (code.get_statement () == ID_return);
1306
+ code_returnt::check (code);
1320
1307
return static_cast <code_returnt &>(code);
1321
1308
}
1322
1309
0 commit comments