1*67e74705SXin Li // RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s 2*67e74705SXin Li 3*67e74705SXin Li // This was a problem in Sema, but only shows up as noinline missing 4*67e74705SXin Li // in CodeGen. 5*67e74705SXin Li 6*67e74705SXin Li // CHECK: define linkonce_odr {{.*}}void @_ZN6VectorIiE13growStorageByEv(%struct.Vector* %this) [[NI:#[0-9]+]] 7*67e74705SXin Li 8*67e74705SXin Li template <class Ty> struct Vector { 9*67e74705SXin Li void growStorageBy(); 10*67e74705SXin Li }; growStorageBy()11*67e74705SXin Litemplate <class T> __attribute__((noinline)) void Vector<T>::growStorageBy() { 12*67e74705SXin Li } foo()13*67e74705SXin Livoid foo() { 14*67e74705SXin Li Vector<int> strs; 15*67e74705SXin Li strs.growStorageBy(); 16*67e74705SXin Li } 17*67e74705SXin Li 18*67e74705SXin Li // CHECK: attributes [[NI]] = { noinline nounwind{{.*}} } 19