aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/execute/builtins/string-9.c
diff options
context:
space:
mode:
authorMichael Matz <matz@suse.de>2005-02-17 22:42:30 +0000
committerMichael Matz <matz@suse.de>2005-02-17 22:42:30 +0000
commit0d3a67f04018da2a0fae4b4a2d7742f317e3b942 (patch)
tree3da4b8381a55ebf9e11370ab77cb825ab3bf7321 /gcc/testsuite/gcc.c-torture/execute/builtins/string-9.c
parentdf58966e0bc37b0ade78c4866e9c9f58ea8d385e (diff)
Merge to HEAD at tree-cleanup-merge-20041024 .new-regalloc-branch
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/new-regalloc-branch@95203 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/builtins/string-9.c')
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtins/string-9.c79
1 files changed, 0 insertions, 79 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/string-9.c b/gcc/testsuite/gcc.c-torture/execute/builtins/string-9.c
deleted file mode 100644
index ba70c397724..00000000000
--- a/gcc/testsuite/gcc.c-torture/execute/builtins/string-9.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright (C) 2000, 2003 Free Software Foundation.
-
- Ensure all expected transformations of builtin strcat occur and
- perform correctly.
-
- Written by Kaveh R. Ghazi, 11/27/2000. */
-
-extern int inside_main;
-extern void abort (void);
-typedef __SIZE_TYPE__ size_t;
-extern char *strcat (char *, const char *);
-extern char *strcpy (char *, const char *);
-extern int strcmp (const char *, const char *);
-extern void *memset (void *, int, size_t);
-extern int memcmp (const void *, const void *, size_t);
-#define RESET_DST_WITH(FILLER) \
- do { memset (dst, 'X', sizeof (dst)); strcpy (dst, (FILLER)); } while (0)
-
-void main_test (void)
-{
- const char *const s1 = "hello world";
- const char *const s2 = "";
- char dst[64], *d2;
-
- RESET_DST_WITH (s1);
- if (strcat (dst, "") != dst || strcmp (dst, s1))
- abort();
- RESET_DST_WITH (s1);
- if (strcat (dst, s2) != dst || strcmp (dst, s1))
- abort();
- RESET_DST_WITH (s1); d2 = dst;
- if (strcat (++d2, s2) != dst+1 || d2 != dst+1 || strcmp (dst, s1))
- abort();
- RESET_DST_WITH (s1); d2 = dst;
- if (strcat (++d2+5, s2) != dst+6 || d2 != dst+1 || strcmp (dst, s1))
- abort();
- RESET_DST_WITH (s1); d2 = dst;
- if (strcat (++d2+5, s1+11) != dst+6 || d2 != dst+1 || strcmp (dst, s1))
- abort();
-
-#ifndef __OPTIMIZE_SIZE__
-# if !defined __i386__ && !defined __x86_64__
- /* The functions below might not be optimized into direct stores on all
- arches. It depends on how many instructions would be generated and
- what limits the architecture chooses in STORE_BY_PIECES_P. */
- inside_main = 0;
-# endif
-
- RESET_DST_WITH (s1);
- if (strcat (dst, " 1111") != dst
- || memcmp (dst, "hello world 1111\0XXX", 20))
- abort();
-
- RESET_DST_WITH (s1);
- if (strcat (dst+5, " 2222") != dst+5
- || memcmp (dst, "hello world 2222\0XXX", 20))
- abort();
-
- RESET_DST_WITH (s1); d2 = dst;
- if (strcat (++d2+5, " 3333") != dst+6 || d2 != dst+1
- || memcmp (dst, "hello world 3333\0XXX", 20))
- abort();
-
- RESET_DST_WITH (s1);
- strcat (strcat (strcat (strcat (strcat (strcat (dst, ": this "), ""),
- "is "), "a "), "test"), ".");
- if (memcmp (dst, "hello world: this is a test.\0X", 30))
- abort();
-
- /* Set inside_main again. */
- inside_main = 1;
-#endif
-
- /* Test at least one instance of the __builtin_ style. We do this
- to ensure that it works and that the prototype is correct. */
- RESET_DST_WITH (s1);
- if (__builtin_strcat (dst, "") != dst || strcmp (dst, s1))
- abort();
-}