diff options
Diffstat (limited to 'validation/backend')
| -rw-r--r-- | validation/backend/constant-pointer.c | 24 | ||||
| -rw-r--r-- | validation/backend/type-constant.c | 23 |
2 files changed, 47 insertions, 0 deletions
diff --git a/validation/backend/constant-pointer.c b/validation/backend/constant-pointer.c new file mode 100644 index 00000000..9012c784 --- /dev/null +++ b/validation/backend/constant-pointer.c @@ -0,0 +1,24 @@ +extern int *ip[]; + +void foo(void); +void foo(void) +{ + ip[0] = (void *)0L; + ip[1] = (int *)0L; + ip[2] = (void *)0; + ip[3] = (int *)0; + ip[4] = (void *)(long)0; + ip[5] = (int *)(long)0; + ip[6] = (void *)123; + ip[7] = (int *)123; + ip[8] = (void *)123L; + ip[9] = (int *)123L; + ip[10] = (void *)(long)123; + ip[11] = (int *)(long)123; +} + +/* + * check-name: constant pointers + * check-command: sparse-llvm $file + * check-output-ignore + */ diff --git a/validation/backend/type-constant.c b/validation/backend/type-constant.c new file mode 100644 index 00000000..cded7f2e --- /dev/null +++ b/validation/backend/type-constant.c @@ -0,0 +1,23 @@ +char creti(void) { return 3; } +int ireti(void) { return 3; } +long lreti(void) { return 3; } + +char cinii(void) { char r = 3; return r; } +int iinii(void) { int r = 3; return r; } +long linii(void) { long r = 3; return r; } + + +void *vretn(void) { return (void*)0; } +char *cretn(void) { return (void*)0; } +int *iretn(void) { return (void*)0; } +long *lretn(void) { return (void*)0; } + +void *vinin(void) { void *r = (void*)0; return r; } +char *cinin(void) { char *r = (void*)0; return r; } +int *iinin(void) { int *r = (void*)0; return r; } +long *linin(void) { long *r = (void*)0; return r; } + +/* + * check-name: type-constant + * check-command: ./sparsec -Wno-decl -c $file -o r.o + */ |
