diff options
Diffstat (limited to 'validation/backend/cast.c')
-rw-r--r-- | validation/backend/cast.c | 11 |
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 |