19
19
20
20
#include " expr.h"
21
21
#include " mp_arith.h"
22
+ #include " nodiscard.h"
22
23
#include " type.h"
23
24
// #define USE_LOCAL_REPLACE_MAP
24
25
#ifdef USE_LOCAL_REPLACE_MAP
@@ -104,20 +105,20 @@ class simplify_exprt
104
105
}
105
106
};
106
107
107
- static resultt<> unchanged (exprt expr)
108
+ NODISCARD static resultt<> unchanged (exprt expr)
108
109
{
109
110
return resultt<>(resultt<>::UNCHANGED, std::move (expr));
110
111
}
111
112
112
- static resultt<> changed (resultt<> result)
113
+ NODISCARD static resultt<> changed (resultt<> result)
113
114
{
114
115
result.expr_changed = resultt<>::CHANGED;
115
116
return result;
116
117
}
117
118
118
119
// These below all return 'true' if the simplification wasn't applicable.
119
120
// If false is returned, the expression has changed.
120
- resultt<> simplify_typecast (const typecast_exprt &);
121
+ NODISCARD resultt<> simplify_typecast (const typecast_exprt &);
121
122
bool simplify_extractbit (exprt &expr);
122
123
bool simplify_extractbits (extractbits_exprt &expr);
123
124
bool simplify_concatenation (exprt &expr);
@@ -143,8 +144,8 @@ class simplify_exprt
143
144
bool simplify_update (exprt &expr);
144
145
bool simplify_index (exprt &expr);
145
146
bool simplify_member (exprt &expr);
146
- resultt<> simplify_byte_update (const byte_update_exprt &);
147
- resultt<> simplify_byte_extract (const byte_extract_exprt &);
147
+ NODISCARD resultt<> simplify_byte_update (const byte_update_exprt &);
148
+ NODISCARD resultt<> simplify_byte_extract (const byte_extract_exprt &);
148
149
bool simplify_pointer_object (exprt &expr);
149
150
bool simplify_object_size (exprt &expr);
150
151
bool simplify_dynamic_size (exprt &expr);
@@ -155,21 +156,22 @@ class simplify_exprt
155
156
bool simplify_object (exprt &expr);
156
157
bool simplify_unary_minus (exprt &expr);
157
158
bool simplify_unary_plus (exprt &expr);
158
- resultt<> simplify_dereference (const dereference_exprt &);
159
+ NODISCARD resultt<> simplify_dereference (const dereference_exprt &);
159
160
bool simplify_address_of (exprt &expr);
160
161
bool simplify_pointer_offset (exprt &expr);
161
162
bool simplify_bswap (bswap_exprt &expr);
162
163
bool simplify_isinf (exprt &expr);
163
164
bool simplify_isnan (exprt &expr);
164
165
bool simplify_isnormal (exprt &expr);
165
- resultt<> simplify_abs (const abs_exprt &);
166
+ NODISCARD resultt<> simplify_abs (const abs_exprt &);
166
167
bool simplify_sign (exprt &expr);
167
- resultt<> simplify_popcount (const popcount_exprt &);
168
+ NODISCARD resultt<> simplify_popcount (const popcount_exprt &);
168
169
bool simplify_complex (exprt &expr);
169
170
170
171
// / Attempt to simplify mathematical function applications if we have
171
172
// / enough information to do so. Currently focused on constant comparisons.
172
- resultt<> simplify_function_application (const function_application_exprt &);
173
+ NODISCARD resultt<>
174
+ simplify_function_application (const function_application_exprt &);
173
175
174
176
// auxiliary
175
177
bool simplify_if_implies (
0 commit comments