aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.7/libmudflap/testsuite/libmudflap.c/fail39-frag.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.7/libmudflap/testsuite/libmudflap.c/fail39-frag.c')
-rw-r--r--gcc-4.7/libmudflap/testsuite/libmudflap.c/fail39-frag.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc-4.7/libmudflap/testsuite/libmudflap.c/fail39-frag.c b/gcc-4.7/libmudflap/testsuite/libmudflap.c/fail39-frag.c
new file mode 100644
index 000000000..4e74ea5cd
--- /dev/null
+++ b/gcc-4.7/libmudflap/testsuite/libmudflap.c/fail39-frag.c
@@ -0,0 +1,20 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+int main ()
+{
+ volatile int *k = (int *) malloc (sizeof (int));
+ volatile int l;
+ if (k == NULL) abort ();
+ *k = 5;
+ free ((void *) k);
+ __mf_set_options ("-ignore-reads");
+ l = *k; /* Should not trip, even though memory region just freed. */
+ __mf_set_options ("-no-ignore-reads");
+ l = *k; /* Should trip now. */
+ return 0;
+}
+/* { dg-output "mudflap violation 1.*check/read.*" } */
+/* { dg-output "Nearby object 1.*" } */
+/* { dg-output "mudflap dead object.*malloc region.*" } */
+/* { dg-do run { xfail *-*-* } } */