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