aboutsummaryrefslogtreecommitdiff
path: root/libmudflap
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@redhat.com>2004-01-27 22:51:03 +0000
committerFrank Ch. Eigler <fche@redhat.com>2004-01-27 22:51:03 +0000
commite41c82da0f50e12f240802a62bc6ab4caf109cc7 (patch)
tree41af4125aed90569be0914f164342c0da9dfca86 /libmudflap
parent5b89fd4576ac31bcc1141e7c29c4e23312a9d77a (diff)
2004-01-27 Frank Ch. Eigler <fche@redhat.com>
* testsuite/libmudflap.c/fail31-frag.c, pass45-frag.c: New tests. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/tree-ssa-20020619-branch@76762 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libmudflap')
-rw-r--r--libmudflap/ChangeLog8
-rw-r--r--libmudflap/testsuite/libmudflap.c/fail31-frag.c22
-rw-r--r--libmudflap/testsuite/libmudflap.c/pass45-frag.c31
3 files changed, 59 insertions, 2 deletions
diff --git a/libmudflap/ChangeLog b/libmudflap/ChangeLog
index 3b4cb3d4079..192a0f409af 100644
--- a/libmudflap/ChangeLog
+++ b/libmudflap/ChangeLog
@@ -1,10 +1,14 @@
+2004-01-27 Frank Ch. Eigler <fche@redhat.com>
+
+ * testsuite/libmudflap.c/fail31-frag.c, pass45-frag.c: New tests.
+
2004-01-15 Frank Ch. Eigler <fche@redhat.com>
- * testsuite/libmudflap.c/pass44.c: New test.
+ * testsuite/libmudflap.c/pass44-frag.c: New test.
2004-01-12 Frank Ch. Eigler <fche@redhat.com>
- * testsuite/libmudflap.c/fail{28,29,30}.c: New tests.
+ * testsuite/libmudflap.c/fail{28,29,30}-frag.c: New tests.
2004-01-08 Frank Ch. Eigler <fche@redhat.com>
diff --git a/libmudflap/testsuite/libmudflap.c/fail31-frag.c b/libmudflap/testsuite/libmudflap.c/fail31-frag.c
new file mode 100644
index 00000000000..b15056c970c
--- /dev/null
+++ b/libmudflap/testsuite/libmudflap.c/fail31-frag.c
@@ -0,0 +1,22 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+extern int h (int i, int j);
+
+int main ()
+{
+ int z = h (4, 10);
+ return 0;
+}
+
+int h (int i, int j)
+{
+ int k[i];
+ k[j] = i;
+ return j;
+}
+
+/* { dg-output "mudflap violation 1.*" } */
+/* { dg-output "Nearby object.*" } */
+/* { dg-output "mudflap object.*\(h\).*k" } */
+/* { dg-do run { xfail *-*-* } } */
diff --git a/libmudflap/testsuite/libmudflap.c/pass45-frag.c b/libmudflap/testsuite/libmudflap.c/pass45-frag.c
new file mode 100644
index 00000000000..c6bfeb5048c
--- /dev/null
+++ b/libmudflap/testsuite/libmudflap.c/pass45-frag.c
@@ -0,0 +1,31 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+extern void h (const char *p, const char *f);
+int
+main (void)
+{
+ h (0, "foo");
+ return 0;
+}
+
+void
+h (const char *p, const char *f)
+{
+ size_t pl = p == NULL ? 0 : strlen (p);
+ size_t fl = strlen (f) + 1;
+ char a[pl + 1 + fl];
+ char *cp = a;
+ char b[pl + 5 + fl * 2];
+ char *cccp = b;
+ if (p != NULL)
+ {
+ cp = memcpy (cp, p, pl);
+ *cp++ = ':';
+ }
+ memcpy (cp, f, fl);
+ strcpy (b, a);
+ puts (a);
+}
+/* { dg-output "foo" } */