1/* Test whether store motion recognizes pure functions as potentially reading 2 any memory. */ 3 4typedef __SIZE_TYPE__ size_t; 5extern void *memcpy (void *dest, const void *src, size_t n); 6extern size_t strlen (const char *s); 7extern int strcmp (const char *s1, const char *s2) __attribute__((pure)); 8 9char buf[50]; 10 11static void foo (void) 12{ 13 if (memcpy (buf, "abc", 4) != buf) abort (); 14 if (strcmp (buf, "abc")) abort (); 15 memcpy (buf, "abcdefgh", strlen ("abcdefgh") + 1); 16} 17 18int main (void) 19{ 20 foo (); 21 return 0; 22} 23