/* PR sanitizer/79944 */ | |
/* { dg-do run } */ | |
struct S { int i; char p[1024]; }; | |
int | |
main () | |
{ | |
struct S *p = (struct S *) __builtin_malloc (__builtin_offsetof (struct S, p) + 64); | |
p->i = 5; | |
asm volatile ("" : "+r" (p) : : "memory"); | |
__atomic_fetch_add ((int *) p, 5, __ATOMIC_RELAXED); | |
asm volatile ("" : "+r" (p) : : "memory"); | |
if (p->i != 10) | |
__builtin_abort (); | |
__builtin_free (p); | |
return 0; | |
} |