/* { dg-do compile { target ia32 } } */ /* { dg-options "-O2 -msse2 -mstv -mpreferred-stack-boundary=4 -mno-stackrealign -W" } */ /* { dg-final { scan-assembler "movq\[ \t\]%xmm\[0-9\]+, \\(%esp\\)" } } */ /* { dg-final { scan-assembler-not "psrlq" } } */ #include extern jmp_buf buf; extern long long *target_p; extern long long *c; extern void foo (long long); __attribute__ ((noclone, noinline)) void bar (void) { if (setjmp (buf)) { long long target = *target_p; *c = target; foo (target); } else foo (0); }