diff options
| author | Douglas Gregor <dgregor@apple.com> | 2011-03-26 12:10:19 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2011-03-26 12:10:19 +0000 |
| commit | 1baf38f5a6edfbaa402f1dbda9dfa30fe02d5163 (patch) | |
| tree | 7d76db523a10e3129396b86ecaf8198bca494d01 /clang/test | |
| parent | 34d00052cbfd6747026f77128950de4462803d65 (diff) | |
| download | bcm5719-llvm-1baf38f5a6edfbaa402f1dbda9dfa30fe02d5163.tar.gz bcm5719-llvm-1baf38f5a6edfbaa402f1dbda9dfa30fe02d5163.zip | |
On Mac OS X, the presence of an 'availability' attribute for that
platform implies default visibility. To achieve these, refactor our
lookup of explicit visibility so that we search for both an explicit
VisibilityAttr and an appropriate AvailabilityAttr, favoring the
VisibilityAttr if it is present.
llvm-svn: 128336
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/CodeGen/attr-availability.c | 31 | ||||
| -rw-r--r-- | clang/test/CodeGenObjC/attr-availability.m | 6 |
2 files changed, 34 insertions, 3 deletions
diff --git a/clang/test/CodeGen/attr-availability.c b/clang/test/CodeGen/attr-availability.c new file mode 100644 index 00000000000..6f9c045a3f1 --- /dev/null +++ b/clang/test/CodeGen/attr-availability.c @@ -0,0 +1,31 @@ +// RUN: %clang_cc1 -fvisibility hidden "-triple" "x86_64-apple-darwin8.0.0" -emit-llvm -o - %s | FileCheck -check-prefix=CHECK-10_4 %s +// RUN: %clang_cc1 -fvisibility hidden "-triple" "x86_64-apple-darwin9.0.0" -emit-llvm -o - %s | FileCheck -check-prefix=CHECK-10_5 %s +// RUN: %clang_cc1 -fvisibility hidden "-triple" "x86_64-apple-darwin10.0.0" -emit-llvm -o - %s | FileCheck -check-prefix=CHECK-10_6 %s + +// CHECK-10_4: define hidden void @f2 +// CHECK-10_5: define hidden void @f2 +// CHECK-10_6: define hidden void @f2 +void f2(); +void f2() { } + +// CHECK-10_4: define void @f3 +// CHECK-10_5: define void @f3 +// CHECK-10_6: define void @f3 +void f3() __attribute__((availability(macosx,introduced=10.5))); +void f3() { } + +// CHECK-10_4: declare extern_weak void @f0 +// CHECK-10_5: declare void @f0 +// CHECK-10_6: declare void @f0 +void f0() __attribute__((availability(macosx,introduced=10.5))); + +// CHECK-10_4: declare extern_weak void @f1 +// CHECK-10_5: declare extern_weak void @f1 +// CHECK-10_6: declare void @f1 +void f1() __attribute__((availability(macosx,introduced=10.6))); + +void test() { + f0(); + f1(); + f2(); +} diff --git a/clang/test/CodeGenObjC/attr-availability.m b/clang/test/CodeGenObjC/attr-availability.m index 4f1fad81b30..d2b2973c78d 100644 --- a/clang/test/CodeGenObjC/attr-availability.m +++ b/clang/test/CodeGenObjC/attr-availability.m @@ -1,6 +1,6 @@ -// RUN: %clang_cc1 -fobjc-nonfragile-abi "-triple" "x86_64-apple-darwin8.0.0" -emit-llvm -o - %s | FileCheck -check-prefix=CHECK-10_4 %s -// RUN: %clang_cc1 -fobjc-nonfragile-abi "-triple" "x86_64-apple-darwin9.0.0" -emit-llvm -o - %s | FileCheck -check-prefix=CHECK-10_5 %s -// RUN: %clang_cc1 -fobjc-nonfragile-abi "-triple" "x86_64-apple-darwin10.0.0" -emit-llvm -o - %s | FileCheck -check-prefix=CHECK-10_6 %s +// RUN: %clang_cc1 -fvisibility hidden -fobjc-nonfragile-abi "-triple" "x86_64-apple-darwin8.0.0" -emit-llvm -o - %s | FileCheck -check-prefix=CHECK-10_4 %s +// RUN: %clang_cc1 -fvisibility hidden -fobjc-nonfragile-abi "-triple" "x86_64-apple-darwin9.0.0" -emit-llvm -o - %s | FileCheck -check-prefix=CHECK-10_5 %s +// RUN: %clang_cc1 -fvisibility hidden -fobjc-nonfragile-abi "-triple" "x86_64-apple-darwin10.0.0" -emit-llvm -o - %s | FileCheck -check-prefix=CHECK-10_6 %s // CHECK-10_4: @"OBJC_CLASS_$_WeakClass1" = extern_weak global // CHECK-10_5: @"OBJC_CLASS_$_WeakClass1" = external global |

