aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@gcc.gnu.org>2003-05-11 14:52:29 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2003-05-11 14:52:29 +0000
commit18636ada462f21c115b8faeeef06d7ad621c0604 (patch)
tree8c98f652549fd58b79f5db9c5551ae0235af9cca
parent82244e3e9ceab8dbd929ce722a69f47e0ab4ba30 (diff)
downloadgcc-18636ada462f21c115b8faeeef06d7ad621c0604.zip
gcc-18636ada462f21c115b8faeeef06d7ad621c0604.tar.gz
gcc-18636ada462f21c115b8faeeef06d7ad621c0604.tar.bz2
Missed from previous commit.
From-SVN: r66690
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/string-opt-asm-1.c82
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/string-opt-asm-2.c131
2 files changed, 0 insertions, 213 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/string-opt-asm-1.c b/gcc/testsuite/gcc.c-torture/execute/string-opt-asm-1.c
deleted file mode 100644
index 5f50f91..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/string-opt-asm-1.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Copyright (C) 2000, 2003 Free Software Foundation.
-
- Ensure all expected transformations of builtin strstr occur and
- perform correctly in presence of redirect. */
-
-typedef __SIZE_TYPE__ size_t;
-extern void abort (void);
-extern char *strstr (const char *, const char *)
- __asm ("my_strstr");
-extern char *strchr (const char *, int);
-extern int strcmp (const char *, const char *);
-extern int strncmp (const char *, const char *, size_t);
-
-const char *p = "rld", *q = "hello world";
-
-int
-main (void)
-{
- const char *const foo = "hello world";
-
- if (strstr (foo, "") != foo)
- abort ();
- if (strstr (foo + 4, "") != foo + 4)
- abort ();
- if (strstr (foo, "h") != foo)
- abort ();
- if (strstr (foo, "w") != foo + 6)
- abort ();
- if (strstr (foo + 6, "o") != foo + 7)
- abort ();
- if (strstr (foo + 1, "world") != foo + 6)
- abort ();
- if (strstr (foo + 2, p) != foo + 8)
- abort ();
- if (strstr (q, "") != q)
- abort ();
- if (strstr (q + 1, "o") != q + 4)
- abort ();
-
- /* Test at least one instance of the __builtin_ style. We do this
- to ensure that it works and that the prototype is correct. */
- if (__builtin_strstr (foo + 1, "world") != foo + 6)
- abort ();
-
- return 0;
-}
-
-/* There should be no calls to real strstr. */
-static char *real_strstr (const char *, const char *)
- __asm ("strstr");
-
-__attribute__ ((noinline))
-static char *
-real_strstr (const char *s1, const char *s2)
-{
- abort ();
-}
-
-static char *
-strstr (const char *s1, const char *s2)
- __asm ("my_strstr");
-
-__attribute__ ((noinline))
-static char *
-strstr (const char *s1, const char *s2)
-{
- size_t len = strlen (s2);
-
-#ifdef __OPTIMIZE__
- /* If optimizing, we should be called only in the
- strstr (foo + 2, p) case above. All other cases should
- be optimized. */
- if (s2 != p || strcmp (s1, "hello world" + 2) != 0)
- abort ();
-#endif
- if (len == 0)
- return (char *) s1;
- for (s1 = strchr (s1, *s2); s1; s1 = strchr (s1 + 1, *s2))
- if (strncmp (s1, s2, len) == 0)
- return (char *) s1;
- return (char *) 0;
-}
diff --git a/gcc/testsuite/gcc.c-torture/execute/string-opt-asm-2.c b/gcc/testsuite/gcc.c-torture/execute/string-opt-asm-2.c
deleted file mode 100644
index 9c629a2..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/string-opt-asm-2.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation.
-
- Test memcpy and memset in presence of redirect. */
-
-typedef __SIZE_TYPE__ size_t;
-extern void abort (void);
-extern void *memcpy (void *, const void *, size_t)
- __asm ("my_memcpy");
-extern void bcopy (const void *, void *, size_t)
- __asm ("my_bcopy");
-extern void *memset (void *, int, size_t)
- __asm ("my_memset");
-extern void bzero (void *, size_t)
- __asm ("my_bzero");
-extern int memcmp (const void *, const void *, size_t);
-
-struct A { char c[32]; } a = { "foobar" };
-char x[64] = "foobar", y[64];
-int i = 39, j = 6, k = 4;
-
-int
-main (void)
-{
- struct A b = a;
- struct A c = { { 'x' } };
-
- if (memcmp (b.c, x, 32) || c.c[0] != 'x' || memcmp (c.c + 1, x + 32, 31))
- abort ();
- if (__builtin_memcpy (y, x, i) != y || memcmp (x, y, 64))
- abort ();
- if (memcpy (y + 6, x, j) != y + 6
- || memcmp (x, y, 6) || memcmp (x, y + 6, 58))
- abort ();
- if (__builtin_memset (y + 2, 'X', k) != y + 2
- || memcmp (y, "foXXXXfoobar", 13))
- abort ();
- bcopy (y + 1, y + 2, 6);
- if (memcmp (y, "fooXXXXfobar", 13))
- abort ();
- __builtin_bzero (y + 4, 2);
- if (memcmp (y, "fooX\0\0Xfobar", 13))
- abort ();
-
- return 0;
-}
-
-/* There should be no calls to real memcpy, memset, bcopy or bzero. */
-static void *real_memcpy (void *, const void *, size_t)
- __asm ("memcpy");
-static void real_bcopy (const void *, void *, size_t)
- __asm ("bcopy");
-static void *real_memset (void *, int, size_t)
- __asm ("memset");
-static void real_bzero (void *, size_t)
- __asm ("bzero");
-
-__attribute__ ((noinline))
-static void *
-real_memcpy (void *d, const void *s, size_t n)
-{
- abort ();
-}
-
-__attribute__ ((noinline))
-static void
-real_bcopy (const void *s, void *d, size_t n)
-{
- abort ();
-}
-
-__attribute__ ((noinline))
-static void *
-real_memset (void *d, int c, size_t n)
-{
- abort ();
-}
-
-__attribute__ ((noinline))
-static void
-real_bzero (void *d, size_t n)
-{
- abort ();
-}
-
-__attribute__ ((noinline))
-void *
-memcpy (void *d, const void *s, size_t n)
-{
- char *dst = (char *) d;
- const char *src = (const char *) s;
- while (n--)
- *dst++ = *src++;
- return (char *) d;
-}
-
-__attribute__ ((noinline))
-void
-bcopy (const void *s, void *d, size_t n)
-{
- char *dst = (char *) d;
- const char *src = (const char *) s;
- if (src >= dst)
- while (n--)
- *dst++ = *src++;
- else
- {
- dst += n;
- src += n;
- while (n--)
- *--dst = *--src;
- }
-}
-
-__attribute__ ((noinline))
-void *
-memset (void *d, int c, size_t n)
-{
- char *dst = (char *) d;
- while (n--)
- *dst++ = c;
- return (char *) d;
-}
-
-__attribute__ ((noinline))
-void
-bzero (void *d, size_t n)
-{
- char *dst = (char *) d;
- while (n--)
- *dst++ = '\0';
-}