From 204232f143970fcc7001063af8096da4aec0f3d1 Mon Sep 17 00:00:00 2001 From: Brian Norris Date: Fri, 2 Nov 2012 18:19:34 -0700 Subject: [PATCH] unrelacy: define the relacy ASSERT macros, fixup rl::var --- include/unrelacy.h | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) 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; }; -- 2.34.1