/* Test whether store motion recognizes pure functions as potentially reading | |
any memory. */ | |
typedef __SIZE_TYPE__ size_t; | |
extern void *memcpy (void *dest, const void *src, size_t n); | |
extern size_t strlen (const char *s); | |
extern int strcmp (const char *s1, const char *s2) __attribute__((pure)); | |
char buf[50]; | |
static void foo (void) | |
{ | |
if (memcpy (buf, "abc", 4) != buf) abort (); | |
if (strcmp (buf, "abc")) abort (); | |
memcpy (buf, "abcdefgh", strlen ("abcdefgh") + 1); | |
} | |
int main (void) | |
{ | |
foo (); | |
return 0; | |
} |