Skip to content

Commit cd4bfc3

Browse files
Merge pull request diffblue#2078 from romainbrenguier/bool-literal-in-while-loop
Use bool literal in while loop
2 parents d229ad9 + 67ea889 commit cd4bfc3

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

src/util/invariant.h

+19-17
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,8 @@ class invariant_failedt: public std::logic_error
124124
// This is *not* recommended as it can result in unpredictable behaviour
125125
// including silently reporting incorrect results.
126126
// This is also useful for checking side-effect freedom.
127-
#define INVARIANT(CONDITION, REASON) do {} while(0)
128-
#define INVARIANT_STRUCTURED(CONDITION, TYPENAME, ...) do {} while(0)
127+
#define INVARIANT(CONDITION, REASON) do {} while(false)
128+
#define INVARIANT_STRUCTURED(CONDITION, TYPENAME, ...) do {} while(false)
129129

130130
#elif defined(CPROVER_INVARIANT_ASSERT)
131131
// Not recommended but provided for backwards compatability
@@ -202,19 +202,21 @@ inline void invariant_violated_string(
202202
#define __this_function__ __func__
203203
#endif
204204

205-
#define INVARIANT(CONDITION, REASON) \
206-
do /* NOLINT */ \
207-
{ \
208-
if(!(CONDITION)) \
209-
invariant_violated_string(__FILE__, __this_function__, __LINE__, (REASON)); /* NOLINT */ \
210-
} while(0)
205+
#define INVARIANT(CONDITION, REASON) \
206+
do /* NOLINT */ \
207+
{ \
208+
if(!(CONDITION)) \
209+
invariant_violated_string( \
210+
__FILE__, __this_function__, __LINE__, (REASON)); /* NOLINT */ \
211+
} while(false)
211212

212-
#define INVARIANT_STRUCTURED(CONDITION, TYPENAME, ...) \
213-
do /* NOLINT */ \
214-
{ \
215-
if(!(CONDITION)) \
216-
invariant_violated_structured<TYPENAME>(__FILE__, __this_function__, __LINE__, __VA_ARGS__); /* NOLINT */ \
217-
} while(0)
213+
#define INVARIANT_STRUCTURED(CONDITION, TYPENAME, ...) \
214+
do /* NOLINT */ \
215+
{ \
216+
if(!(CONDITION)) \
217+
invariant_violated_structured<TYPENAME>( \
218+
__FILE__, __this_function__, __LINE__, __VA_ARGS__); /* NOLINT */ \
219+
} while(false)
218220

219221
#endif // End CPROVER_DO_NOT_CHECK / CPROVER_ASSERT / ... if block
220222

@@ -260,8 +262,8 @@ inline void invariant_violated_string(
260262

261263
// The following should not be used in new code and are only intended
262264
// to migrate documentation and "error handling" in older code
263-
#define TODO INVARIANT(0, "Todo")
264-
#define UNIMPLEMENTED INVARIANT(0, "Unimplemented")
265-
#define UNHANDLED_CASE INVARIANT(0, "Unhandled case")
265+
#define TODO INVARIANT(false, "Todo")
266+
#define UNIMPLEMENTED INVARIANT(false, "Unimplemented")
267+
#define UNHANDLED_CASE INVARIANT(false, "Unhandled case")
266268

267269
#endif // CPROVER_UTIL_INVARIANT_H

0 commit comments

Comments
 (0)