14421d2b341d041df44013769f23c306308bbab83Douglas Gregor// RUN: %clang_cc1 -fvisibility hidden "-triple" "x86_64-apple-darwin8.0.0" -emit-llvm -o - %s | FileCheck -check-prefix=CHECK-10_4 %s
24421d2b341d041df44013769f23c306308bbab83Douglas Gregor// RUN: %clang_cc1 -fvisibility hidden "-triple" "x86_64-apple-darwin9.0.0" -emit-llvm -o - %s | FileCheck -check-prefix=CHECK-10_5 %s
34421d2b341d041df44013769f23c306308bbab83Douglas Gregor// RUN: %clang_cc1 -fvisibility hidden "-triple" "x86_64-apple-darwin10.0.0" -emit-llvm -o - %s | FileCheck -check-prefix=CHECK-10_6 %s
44421d2b341d041df44013769f23c306308bbab83Douglas Gregor
54421d2b341d041df44013769f23c306308bbab83Douglas Gregor// CHECK-10_4: define hidden void @f2
64421d2b341d041df44013769f23c306308bbab83Douglas Gregor// CHECK-10_5: define hidden void @f2
74421d2b341d041df44013769f23c306308bbab83Douglas Gregor// CHECK-10_6: define hidden void @f2
84421d2b341d041df44013769f23c306308bbab83Douglas Gregorvoid f2();
94421d2b341d041df44013769f23c306308bbab83Douglas Gregorvoid f2() { }
104421d2b341d041df44013769f23c306308bbab83Douglas Gregor
114421d2b341d041df44013769f23c306308bbab83Douglas Gregor// CHECK-10_4: define void @f3
124421d2b341d041df44013769f23c306308bbab83Douglas Gregor// CHECK-10_5: define void @f3
134421d2b341d041df44013769f23c306308bbab83Douglas Gregor// CHECK-10_6: define void @f3
144421d2b341d041df44013769f23c306308bbab83Douglas Gregorvoid f3() __attribute__((availability(macosx,introduced=10.5)));
154421d2b341d041df44013769f23c306308bbab83Douglas Gregorvoid f3() { }
164421d2b341d041df44013769f23c306308bbab83Douglas Gregor
174421d2b341d041df44013769f23c306308bbab83Douglas Gregor// CHECK-10_4: declare extern_weak void @f0
184421d2b341d041df44013769f23c306308bbab83Douglas Gregor// CHECK-10_5: declare void @f0
194421d2b341d041df44013769f23c306308bbab83Douglas Gregor// CHECK-10_6: declare void @f0
204421d2b341d041df44013769f23c306308bbab83Douglas Gregorvoid f0() __attribute__((availability(macosx,introduced=10.5)));
214421d2b341d041df44013769f23c306308bbab83Douglas Gregor
224421d2b341d041df44013769f23c306308bbab83Douglas Gregor// CHECK-10_4: declare extern_weak void @f1
234421d2b341d041df44013769f23c306308bbab83Douglas Gregor// CHECK-10_5: declare extern_weak void @f1
244421d2b341d041df44013769f23c306308bbab83Douglas Gregor// CHECK-10_6: declare void @f1
254421d2b341d041df44013769f23c306308bbab83Douglas Gregorvoid f1() __attribute__((availability(macosx,introduced=10.6)));
264421d2b341d041df44013769f23c306308bbab83Douglas Gregor
274421d2b341d041df44013769f23c306308bbab83Douglas Gregorvoid test() {
284421d2b341d041df44013769f23c306308bbab83Douglas Gregor  f0();
294421d2b341d041df44013769f23c306308bbab83Douglas Gregor  f1();
304421d2b341d041df44013769f23c306308bbab83Douglas Gregor  f2();
314421d2b341d041df44013769f23c306308bbab83Douglas Gregor}
32