aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/fpomit-9.c
blob: 7c1e8b85da3bf9a1123f7d438ec6ad6e62177d3d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* { dg-do compile { target {{ i?86-*-* x86_64-*-* } && lp64 } } } */
/* { dg-options "-O2 -fno-omit-frame-pointer -fshrink-wrap-frame-pointer -fno-schedule-insns2" } */
/* { dg-final { scan-assembler-not "push" } } */
/* { dg-final { scan-assembler-not "pop" } } */

/* Check -fshrink-wrap-frame-pointer can enable omitting leaf frame pointer
   if -mno-omit-leaf-frame-pointer is not specified explicitly.  */

int a[1000], b[1000];

void foo() {
  int r1, r2, r3, r4;

  r1 = a[1];
  r2 = a[2];
  r3 = a[3];
  r4 = a[4];
  asm volatile ("" : : : "memory");
  b[1] = r1;
  b[2] = r2;
  b[3] = r3;
  b[4] = r4;
}