1 /* Test whether store motion recognizes pure functions as potentially reading 2 any memory. */ 3 4 typedef __SIZE_TYPE__ size_t; 5 extern void *memcpy (void *dest, const void *src, size_t n); 6 extern size_t strlen (const char *s); 7 extern int strcmp (const char *s1, const char *s2) __attribute__((pure)); 8 9 char buf[50]; 10 foo(void)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 main(void)18int main (void) 19 { 20 foo (); 21 return 0; 22 } 23