aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/preserve-none-3.c
blob: df484a5184cec4f52712bc6c66c7225c1b85e83f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* { dg-do compile } */
/* { dg-options "-O2 -mtune-ctrl=^prologue_using_move,^epilogue_using_move -fomit-frame-pointer -mnoreturn-no-callee-saved-registers" } */

extern void bar (void) __attribute__ ((preserve_none));
extern void fn (void) __attribute__ ((noreturn));

__attribute__ ((noreturn))
void
foo (void)
{
  bar ();
  fn ();
}

/* { dg-final { scan-assembler-not "push\[^\n\r\]*(?:\[abcd\]x|\[sd\]i|sp|r\[0-9\]|\[xyz\]mm)" } } */
/* { dg-final { scan-assembler-not "pop\[^\n\r\]*(?:\[abcd\]x|\[sd\]i|sp|r\[0-9\]|\[xyz\]mm)" } } */
/* { dg-final { scan-assembler-not "jmp\[\\t \]+_?bar" } } */
/* { dg-final { scan-assembler "call\[\\t \]+_?bar" } } */