On Wed, Jun 22, 2016 at 03:16:20PM +0200, Eric Botcazou wrote: > /* { dg-do run } */ > /* { dg-options "-g" } */ > /* { dg-skip-if "" { *-*-* } { "*" } { "-O0" } } */ > > typedef __UINTPTR_TYPE__ uintptr_t; > > typedef struct { uintptr_t pa; uintptr_t pb; } fatp_t > __attribute__ ((aligned (2 * __alignof__ (uintptr_t)))); > > __attribute__((noinline, noclone)) void > clear_stack (void) > { > char a[128 * 1024 + 128]; > > __builtin_memset (a, 0, sizeof (a));
Do you really need the memset in there to reproduce it? Wouldn't asm volatile ("" : : "r" (&a[0]) : "memory"); or something similar be enough? Or if you need to clear something, clear much smaller part of the array? Jakub