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