summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/always_inline.c
blob: a74c212c0ece59e55749ae370ad4ef718621c74f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// RUN: %clang -emit-llvm -S -o - %s | FileCheck %s
// RUN: %clang -mllvm -disable-llvm-optzns -emit-llvm -S -o - %s | FileCheck %s --check-prefix=CHECK-NO-OPTZNS

//static int f0() { 
static int __attribute__((always_inline)) f0() { 
  return 1;
}

int f1() {
  return f0();
}

// PR4372
inline int f2() __attribute__((always_inline));
int f2() { return 7; }
int f3(void) { return f2(); }

// CHECK-LABEL: define i32 @f1()
// CHECK: ret i32 1
// CHECK-LABEL: define i32 @f2()
// CHECK: ret i32 7
// CHECK-LABEL: define i32 @f3()
// CHECK: ret i32 7

// CHECK-NO-OPTZNS: define i32 @f3()
// CHECK-NO-OPTZNS-NEXT: entry:
// CHECK-NO-OPTZNS-NEXT:   call i32 @f2.alwaysinline()
// CHECK-NO-OPTZNS-NEXT:   ret i32
OpenPOWER on IntegriCloud