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

Reply via email to