aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation/backend
diff options
context:
space:
mode:
Diffstat (limited to 'validation/backend')
-rw-r--r--validation/backend/call-variadic.c16
-rw-r--r--validation/backend/cast.c11
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