15ec2e7ccb08b2a1598f12b2c6f59c6f31d035b5bAnders Carlsson// RUN: %clang_cc1 -triple=x86_64-linux-gnu %s -emit-llvm -o - | FileCheck %s
25ec2e7ccb08b2a1598f12b2c6f59c6f31d035b5bAnders Carlsson
35ec2e7ccb08b2a1598f12b2c6f59c6f31d035b5bAnders Carlssonvoid f(void) {}
45ec2e7ccb08b2a1598f12b2c6f59c6f31d035b5bAnders Carlsson
55ec2e7ccb08b2a1598f12b2c6f59c6f31d035b5bAnders Carlsson__attribute__((noinline)) void ni(void) {}
65ec2e7ccb08b2a1598f12b2c6f59c6f31d035b5bAnders Carlsson
75ec2e7ccb08b2a1598f12b2c6f59c6f31d035b5bAnders Carlsson__attribute__((flatten))
85ec2e7ccb08b2a1598f12b2c6f59c6f31d035b5bAnders Carlsson// CHECK: define void @g()
95ec2e7ccb08b2a1598f12b2c6f59c6f31d035b5bAnders Carlssonvoid g(void) {
105ec2e7ccb08b2a1598f12b2c6f59c6f31d035b5bAnders Carlsson  // CHECK-NOT: call {{.*}} @f
115ec2e7ccb08b2a1598f12b2c6f59c6f31d035b5bAnders Carlsson  f();
125ec2e7ccb08b2a1598f12b2c6f59c6f31d035b5bAnders Carlsson  // CHECK: call {{.*}} @ni
135ec2e7ccb08b2a1598f12b2c6f59c6f31d035b5bAnders Carlsson  ni();
145ec2e7ccb08b2a1598f12b2c6f59c6f31d035b5bAnders Carlsson}
154c40d98ab7acf5f27fa89b17bd8fc0ef7683df37John McCall
1655fc873017f10f6f566b182b70f6fc22aefa3464Chandler Carruthvoid h(void) {
1706057cef0bcd7804e80f3ce2bbe352178396c715Chandler Carruth  // CHECK: call {{.*}} @f
184179ddd5752ec5a252ca1e1eb77a5c34b5835d3bAnton Korobeynikov  f();
193b844ba7d5be205a9b4f5f0b0d1b7978977f4b8cChandler Carruth}
206bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines