|
16 | 16 |
|
17 | 17 | #include <testing-utils/catch.hpp>
|
18 | 18 | #include <util/arith_tools.h>
|
| 19 | +#include <util/std_code.h> |
19 | 20 |
|
20 | 21 | /// Verify a given exprt is an index_exprt with a a constant value equal to the
|
21 | 22 | /// expected value
|
@@ -69,8 +70,39 @@ member_exprt require_expr::require_member(
|
69 | 70 | symbol_exprt require_expr::require_symbol(
|
70 | 71 | const exprt &expr, const irep_idt &symbol_name)
|
71 | 72 | {
|
72 |
| - REQUIRE(expr.id()==ID_symbol); |
73 |
| - const symbol_exprt &symbol_expr=to_symbol_expr(expr); |
| 73 | + const symbol_exprt &symbol_expr = require_symbol(expr); |
74 | 74 | REQUIRE(symbol_expr.get_identifier()==symbol_name);
|
75 | 75 | return symbol_expr;
|
76 | 76 | }
|
| 77 | + |
| 78 | +/// Verify a given exprt is a symbol_exprt. |
| 79 | +/// \param expr: The expression. |
| 80 | +/// \return The expr cast to a symbol_exprt |
| 81 | +symbol_exprt require_expr::require_symbol(const exprt &expr) |
| 82 | +{ |
| 83 | + REQUIRE(expr.id() == ID_symbol); |
| 84 | + return to_symbol_expr(expr); |
| 85 | +} |
| 86 | + |
| 87 | +/// Verify a given exprt is a typecast_expr. |
| 88 | +/// \param expr: The expression. |
| 89 | +/// \return The expr cast to a typecast_exprt |
| 90 | +typecast_exprt require_expr::require_typecast(const exprt &expr) |
| 91 | +{ |
| 92 | + REQUIRE(expr.id() == ID_typecast); |
| 93 | + return to_typecast_expr(expr); |
| 94 | +} |
| 95 | + |
| 96 | +/// Verify a given exprt is a side_effect_exprt with appropriate statement. |
| 97 | +/// \param expr: The expression. |
| 98 | +/// \param symbol_name: The intended identifier of statement |
| 99 | +/// \return The expr cast to a side_effect_exprt |
| 100 | +side_effect_exprt require_expr::require_side_effect_expr( |
| 101 | + const exprt &expr, |
| 102 | + const irep_idt &side_effect_statement) |
| 103 | +{ |
| 104 | + REQUIRE(expr.id() == ID_side_effect); |
| 105 | + const side_effect_exprt &side_effect_expr = to_side_effect_expr(expr); |
| 106 | + REQUIRE(side_effect_expr.get_statement() == side_effect_statement); |
| 107 | + return side_effect_expr; |
| 108 | +} |
0 commit comments