• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // REQUIRES: x86-registered-target
2 
3 // RUN: %clang -target i386-apple-darwin -S -o - %s | \
4 // RUN:   FileCheck --check-prefix=DARWIN %s
5 // DARWIN: f0:
6 // DARWIN: pushl %ebp
7 // DARWIN: ret
8 // DARWIN: f1:
9 // DARWIN: pushl %ebp
10 // DARWIN: ret
11 
12 // RUN: %clang -target i386-pc-linux-gnu -S -o - %s | \
13 // RUN:   FileCheck --check-prefix=LINUX %s
14 // LINUX: f0:
15 // LINUX-NOT: pushl %ebp
16 // LINUX: ret
17 // LINUX: f1:
18 // LINUX: pushl %ebp
19 // LINUX: ret
20 
21 // RUN: %clang -target i386-darwin -S -o - -fomit-frame-pointer %s | \
22 // RUN:   FileCheck --check-prefix=OMIT_ALL %s
23 // OMIT_ALL: f0:
24 // OMIT_ALL-NOT: pushl %ebp
25 // OMIT_ALL: ret
26 // OMIT_ALL: f1:
27 // OMIT_ALL-NOT: pushl %ebp
28 // OMIT_ALL: ret
29 
30 // RUN: %clang -target i386-darwin -S -o - -momit-leaf-frame-pointer %s | \
31 // RUN:   FileCheck --check-prefix=OMIT_LEAF %s
32 // OMIT_LEAF: f0:
33 // OMIT_LEAF-NOT: pushl %ebp
34 // OMIT_LEAF: ret
35 // OMIT_LEAF: f1:
36 // OMIT_LEAF: pushl %ebp
37 // OMIT_LEAF: ret
38 
f0()39 void f0() {}
f1()40 void f1() { f0(); }
41