From: Brian Norris Date: Sat, 3 Nov 2012 01:19:34 +0000 (-0700) Subject: unrelacy: define the relacy ASSERT macros, fixup rl::var X-Git-Tag: pldi2013~21 X-Git-Url: http://plrg.eecs.uci.edu/git/?p=model-checker-benchmarks.git;a=commitdiff_plain;h=204232f143970fcc7001063af8096da4aec0f3d1;ds=sidebyside unrelacy: define the relacy ASSERT macros, fixup rl::var --- diff --git a/include/unrelacy.h b/include/unrelacy.h index 3f2e5eb..d65ffc3 100644 --- a/include/unrelacy.h +++ b/include/unrelacy.h @@ -2,12 +2,18 @@ #define __UNRELACY_H__ #include +#include +#include #define $ -/* Should re-define to something meaningful */ -#define ASSERT(expr) -#define RL_ASSERT(expr) +#define _TEST_ASSERT(expr) \ + if (!(expr)) { \ + printf("Error: assertion failed at %s:%d\n", __FILE__, __LINE__); \ + exit(EXIT_FAILURE); \ + } +#define ASSERT(expr) _TEST_ASSERT(expr) +#define RL_ASSERT(expr) _TEST_ASSERT(expr) #define RL_NEW new #define RL_DELETE(expr) delete expr @@ -24,12 +30,13 @@ namespace rl { struct var { var() { value = 0; } var(T v) { value = v; } - var(var const& r) { value = r; } + var(var const& r) { value = r.value; } ~var() { } void operator = (T v) { value = v; } T operator () () { return value; } void operator += (T v) { value += v; } + bool operator == (const struct var v) const { return value == v.value; } T value; };