view gcc/testsuite/gcc.target/i386/pr95021-1.c @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 2b5abeee2509
children
line wrap: on
line source

/* { dg-do compile { target ia32 } } */
/* { dg-options "-O2 -msse2 -mstv -W" } */
/* { dg-final { scan-assembler "movq\[ \t\]%xmm\[0-9\]+, \\(%esp\\)" } } */
/* { dg-final { scan-assembler-not "psrlq" } } */

#include <setjmp.h>

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);
}