diff options
Diffstat (limited to 'libmudflap/testsuite')
-rw-r--r-- | libmudflap/testsuite/libmudflap.c/fail32-frag.c | 16 | ||||
-rw-r--r-- | libmudflap/testsuite/libmudflap.c/pass48-frag.c | 11 | ||||
-rw-r--r-- | libmudflap/testsuite/libmudflap.c/pass49-frag.c | 35 |
3 files changed, 62 insertions, 0 deletions
diff --git a/libmudflap/testsuite/libmudflap.c/fail32-frag.c b/libmudflap/testsuite/libmudflap.c/fail32-frag.c new file mode 100644 index 00000000000..2a38237b678 --- /dev/null +++ b/libmudflap/testsuite/libmudflap.c/fail32-frag.c @@ -0,0 +1,16 @@ +void foo (int k) +{ + volatile int *b = & k; + b++; + *b = 5; +} + +int main () +{ + foo (5); + return 0; +} +/* { dg-output "mudflap violation 1.*" } */ +/* { dg-output "Nearby object.*" } */ +/* { dg-output "mudflap object.*k" } */ +/* { dg-do run { xfail *-*-* } } */ diff --git a/libmudflap/testsuite/libmudflap.c/pass48-frag.c b/libmudflap/testsuite/libmudflap.c/pass48-frag.c new file mode 100644 index 00000000000..3059762a82c --- /dev/null +++ b/libmudflap/testsuite/libmudflap.c/pass48-frag.c @@ -0,0 +1,11 @@ +void foo (int k) +{ + volatile int *b = & k; + *b = 5; +} + +int main () +{ + foo (5); + return 0; +} diff --git a/libmudflap/testsuite/libmudflap.c/pass49-frag.c b/libmudflap/testsuite/libmudflap.c/pass49-frag.c new file mode 100644 index 00000000000..db7453079a0 --- /dev/null +++ b/libmudflap/testsuite/libmudflap.c/pass49-frag.c @@ -0,0 +1,35 @@ +#include <stdlib.h> +#include <ctype.h> +#include <stdarg.h> + +int foo (int a, ...) +{ + va_list args; + char *a1; + int a2; + int k; + + va_start (args, a); + for (k = 0; k < a; k++) + { + if ((k % 2) == 0) + { + char *b = va_arg (args, char *); + printf ("%s", b); + } + else + { + int b = va_arg (args, int); + printf ("%d", b); + } + } + va_end (args); + return a; +} + +int main () +{ + foo (7, "hello ", 5, " ", 3, " world ", 9, "\n"); + return 0; +} +/* { dg-output "hello 5 3 world 9" } */ |