|
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