1*67e74705SXin Li // Make sure -fno-inline-functions is behaving correctly. 2*67e74705SXin Li // rdar://10972766 3*67e74705SXin Li 4*67e74705SXin Li // RUN: %clang_cc1 -O3 -fno-inline -fno-inline-functions -emit-llvm %s -o - | FileCheck -check-prefix=NOINLINE %s 5*67e74705SXin Li dont_inline_me(int a,int b)6*67e74705SXin Liinline int dont_inline_me(int a, int b) { return(a+b); } 7*67e74705SXin Li inline_me(int a,int b)8*67e74705SXin Liinline __attribute__ ((__always_inline__)) int inline_me(int a, int b) { return(a*b); } 9*67e74705SXin Li 10*67e74705SXin Li volatile int *pa = (int*) 0x1000; foo()11*67e74705SXin Livoid foo() { 12*67e74705SXin Li // NOINLINE: @foo 13*67e74705SXin Li // NOINLINE: dont_inline_me 14*67e74705SXin Li // NOINLINE-NOT: inlinehint 15*67e74705SXin Li pa[0] = dont_inline_me(pa[1],pa[2]); 16*67e74705SXin Li // NOINLINE-NOT: inline_me 17*67e74705SXin Li pa[3] = inline_me(pa[4],pa[5]); 18*67e74705SXin Li } 19*67e74705SXin Li 20*67e74705SXin Li // NOINLINE: Function Attrs: noinline 21*67e74705SXin Li // NOINLINE: @dont_inline_me 22