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 
7 extern void abort ();
8 typedef __SIZE_TYPE__ size_t;
9 
10 extern void *memcpy(void*, const void*, size_t);
11 extern void *mempcpy(void*, const void*, size_t);
12 extern void *memmove(void*, const void*, size_t);
13 extern char *strcpy(char*, const char*);
14 extern int memcmp(const void*, const void*, size_t);
15 extern int strcmp(const char*, const char*);
16 extern int strncmp(const char*, const char*, size_t);
17 
18 
test1(void * ptr)19 void test1 (void *ptr)
20 {
21   if (memcpy(ptr,ptr,8) != ptr)
22     abort ();
23 }
24 
test2(char * ptr)25 void test2 (char *ptr)
26 {
27   if (mempcpy(ptr,ptr,8) != ptr+8)
28     abort ();
29 }
30 
test3(void * ptr)31 void test3 (void *ptr)
32 {
33   if (memmove(ptr,ptr,8) != ptr)
34     abort ();
35 }
36 
test4(char * ptr)37 void test4 (char *ptr)
38 {
39   if (strcpy(ptr,ptr) != ptr)
40     abort ();
41 }
42 
test5(void * ptr)43 void test5 (void *ptr)
44 {
45   if (memcmp(ptr,ptr,8) != 0)
46     abort ();
47 }
48 
test6(const char * ptr)49 void test6 (const char *ptr)
50 {
51   if (strcmp(ptr,ptr) != 0)
52     abort ();
53 }
54 
test7(const char * ptr)55 void test7 (const char *ptr)
56 {
57   if (strncmp(ptr,ptr,8) != 0)
58     abort ();
59 }
60 
61 
main()62 int 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