1651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang_cc1 -S -emit-llvm -triple %itanium_abi_triple -o - %s -finstrument-functions | FileCheck %s
27aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek
37aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek// CHECK: @_Z5test1i
47aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenekint test1(int x) {
57aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek// CHECK: __cyg_profile_func_enter
67aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek// CHECK: __cyg_profile_func_exit
77aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek// CHECK: ret
87aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek  return x;
97aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek}
107aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek
117aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek// CHECK: @_Z5test2i
127aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenekint test2(int) __attribute__((no_instrument_function));
137aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenekint test2(int x) {
147aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek// CHECK-NOT: __cyg_profile_func_enter
157aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek// CHECK-NOT: __cyg_profile_func_exit
167aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek// CHECK: ret
177aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek  return x;
187aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek}
197aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek
207aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek// This test case previously crashed code generation.  It exists solely
217aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek// to test -finstrument-function does not crash codegen for this trivial
227aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek// case.
237aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremeneknamespace rdar9445102 {
247aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek  class Rdar9445102 {
257aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek    public:
267aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek      Rdar9445102();
277aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek  };
287aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek}
297aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenekstatic rdar9445102::Rdar9445102 s_rdar9445102Initializer;
307aa488a7fc5c3a8cd1a2b93476150e9737760713Ted Kremenek
31