diff options
Diffstat (limited to 'validation/backend')
-rw-r--r-- | validation/backend/call-variadic.c | 16 | ||||
-rw-r--r-- | validation/backend/cast.c | 11 |
2 files changed, 14 insertions, 13 deletions
diff --git a/validation/backend/call-variadic.c b/validation/backend/call-variadic.c index 4924e3f1..f6f3fe04 100644 --- a/validation/backend/call-variadic.c +++ b/validation/backend/call-variadic.c @@ -11,17 +11,9 @@ int foo(const char *fmt, int a, long l, int *p) /* * check-name: call-variadic * check-command: sparse-llvm-dis -m64 $file + * check-output-ignore + * check-output-contains: , ...) @print(\\(i8\\*\\|ptr\\) %ARG1., i32 120, i32 %ARG2., i32 8, i64 %ARG3., i64 0, \\(i32\\*\\|ptr\\) %ARG4., \\(i8\\*\\|ptr\\) null) + * check-output-contains: define i32 @foo( + * check-output-contains: declare i32 @print( * - * check-output-start -; ModuleID = '<stdin>' -source_filename = "sparse" - -define i32 @foo(i8* %ARG1., i32 %ARG2., i64 %ARG3., i32* %ARG4.) { -L0: - %R5. = call i32 (i8*, ...) @print(i8* %ARG1., i32 120, i32 %ARG2., i32 8, i64 %ARG3., i64 0, i32* %ARG4., i8* null) - ret i32 %R5. -} - -declare i32 @print(i8*, ...) - * check-output-end */ 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 |