1/* Copyright (C) 2003  Free Software Foundation.
2
3   Test equal pointer optimizations don't break anything.
4
5   Written by Roger Sayle, July 14, 2003.  */
6
7extern void abort ();
8typedef __SIZE_TYPE__ size_t;
9
10extern void *memcpy(void*, const void*, size_t);
11extern void *mempcpy(void*, const void*, size_t);
12extern void *memmove(void*, const void*, size_t);
13extern char *strcpy(char*, const char*);
14extern int memcmp(const void*, const void*, size_t);
15extern int strcmp(const char*, const char*);
16extern int strncmp(const char*, const char*, size_t);
17
18
19void test1 (void *ptr)
20{
21  if (memcpy(ptr,ptr,8) != ptr)
22    abort ();
23}
24
25void test2 (char *ptr)
26{
27  if (mempcpy(ptr,ptr,8) != ptr+8)
28    abort ();
29}
30
31void test3 (void *ptr)
32{
33  if (memmove(ptr,ptr,8) != ptr)
34    abort ();
35}
36
37void test4 (char *ptr)
38{
39  if (strcpy(ptr,ptr) != ptr)
40    abort ();
41}
42
43void test5 (void *ptr)
44{
45  if (memcmp(ptr,ptr,8) != 0)
46    abort ();
47}
48
49void test6 (const char *ptr)
50{
51  if (strcmp(ptr,ptr) != 0)
52    abort ();
53}
54
55void test7 (const char *ptr)
56{
57  if (strncmp(ptr,ptr,8) != 0)
58    abort ();
59}
60
61
62int main ()
63{
64  char buf[10];
65
66  test1 (buf);
67  test2 (buf);
68  test3 (buf);
69  test4 (buf);
70  test5 (buf);
71  test6 (buf);
72  test7 (buf);
73
74  return 0;
75}
76
77