aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation/backend/cast.c
diff options
context:
space:
mode:
Diffstat (limited to 'validation/backend/cast.c')
-rw-r--r--validation/backend/cast.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/validation/backend/cast.c b/validation/backend/cast.c
index f4122409..9dfa6da5 100644
--- a/validation/backend/cast.c
+++ b/validation/backend/cast.c
@@ -6,10 +6,12 @@ typedef unsigned int uint;
typedef unsigned long ulong;
typedef long long longlong;
typedef unsigned long long ulonglong;
+typedef void *vptr;
+typedef int *iptr;
#define DEFINE_CAST(from, to) \
static to from##2##to(from x) { \
- return x; \
+ return (to)x; \
}
#define DEFINE_CASTS(from) \
@@ -43,6 +45,13 @@ DEFINE_CASTS(ulonglong)
DEFINE_CASTS(float)
DEFINE_CASTS(double)
+DEFINE_CAST(long, vptr)
+DEFINE_CAST(long, iptr)
+DEFINE_CAST(vptr, long)
+DEFINE_CAST(iptr, long)
+DEFINE_CAST(int, vptr)
+DEFINE_CAST(vptr, int)
+
/*
* check-name: Cast code generation
* check-command: sparsec -c $file -o tmp.o