]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
20010124-1.c: Removed and split into two new files which are ...
authorDavid Daney <ddaney@avtrex.com>
Fri, 9 Sep 2005 23:32:57 +0000 (23:32 +0000)
committerDavid Daney <daney@gcc.gnu.org>
Fri, 9 Sep 2005 23:32:57 +0000 (23:32 +0000)
2005-09-09  David Daney <ddaney@avtrex.com>

* gcc.c-torture/execute/20010124-1.c:  Removed and split into two new
files which are ...
* gcc.c-torture/execute/builtins/20010124-1: ... here and ...
* gcc.c-torture/execute/builtins/20010124-1-lib.c: ... here.

From-SVN: r104116

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/20010124-1.c [deleted file]
gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1-lib.c [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1.c [new file with mode: 0644]

index a8236a5ecbf35b431dc12dc0e0a606393b8e5e09..385068d851275b3843f81444c75f3bf6a05e6b20 100644 (file)
@@ -1,3 +1,10 @@
+2005-09-09  David Daney <ddaney@avtrex.com>
+
+       * gcc.c-torture/execute/20010124-1.c:  Removed and split into two new 
+       files which are ...
+       * gcc.c-torture/execute/builtins/20010124-1: ... here and ...
+       * gcc.c-torture/execute/builtins/20010124-1-lib.c: ... here.
+
 2005-09-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
 
        * gfortran.dg/iostat_2.f90: New test.
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010124-1.c b/gcc/testsuite/gcc.c-torture/execute/20010124-1.c
deleted file mode 100644 (file)
index 5db512b..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Verify that structure return doesn't invoke memcpy on 
-   overlapping objects.  */
-
-extern void abort (void);
-typedef __SIZE_TYPE__ size_t;
-
-struct S {
-  char stuff[1024];
-};
-
-union U {
-  struct {
-    int space;
-    struct S s;
-  } a;
-  struct {
-    struct S s;
-    int space;
-  } b;
-};
-
-static struct S f(struct S *);
-static void g(union U *);
-
-int main()
-{
-  union U u;
-  u.b.s = f(&u.a.s);
-  u.a.s = f(&u.b.s);
-  g(&u);
-  return 0;
-}
-  
-static struct S f(struct S *p)
-{
-  return *p;
-}
-
-static void g(union U *p)
-{
-}
-
-static void *memcpy(void *a, const void *b, size_t len)
-{
-  if (a < b && a+len > b)
-    abort ();
-  if (b < a && b+len > a)
-    abort ();
-  return a;
-}
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1-lib.c b/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1-lib.c
new file mode 100644 (file)
index 0000000..5f6a748
--- /dev/null
@@ -0,0 +1,50 @@
+/* Verify that structure return doesn't invoke memcpy on 
+   overlapping objects.  */
+
+extern void abort (void);
+extern int inside_main;
+typedef __SIZE_TYPE__ size_t;
+
+struct S {
+  char stuff[1024];
+};
+
+union U {
+  struct {
+    int space;
+    struct S s;
+  } a;
+  struct {
+    struct S s;
+    int space;
+  } b;
+};
+  
+struct S f(struct S *p)
+{
+  return *p;
+}
+
+void g(union U *p)
+{
+}
+
+void *memcpy(void *a, const void *b, size_t len)
+{
+  if (inside_main)
+    {
+      if (a < b && a+len > b)
+        abort ();
+      if (b < a && b+len > a)
+        abort ();
+      return a;
+    }
+  else
+    {
+      char *dst = (char *) a;
+      const char *src = (const char *) b;
+      while (len--)
+        *dst++ = *src++;
+      return a;
+    }
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1.c b/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1.c
new file mode 100644 (file)
index 0000000..8162873
--- /dev/null
@@ -0,0 +1,30 @@
+/* Verify that structure return doesn't invoke memcpy on 
+   overlapping objects.  */
+
+extern void abort (void);
+
+struct S {
+  char stuff[1024];
+};
+
+union U {
+  struct {
+    int space;
+    struct S s;
+  } a;
+  struct {
+    struct S s;
+    int space;
+  } b;
+};
+
+struct S f(struct S *);
+void g(union U *);
+
+void main_test(void)
+{
+  union U u;
+  u.b.s = f(&u.a.s);
+  u.a.s = f(&u.b.s);
+  g(&u);
+}