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