blob: 518afc4d33450499172025b086724e5b9d439aaa [file] [log] [blame]
Erik Pilkington9c42a8d2017-02-23 21:08:08 +00001// RUN: %clang_cc1 -triple x86_64-apple-macosx10.11 -emit-llvm -o - %s | FileCheck %s
2
3void use_at_available() {
Alex Lorenz701456b2020-10-28 22:48:59 -07004 // CHECK: call i32 @__isPlatformVersionAtLeast(i32 1, i32 10, i32 12, i32 0)
Erik Pilkington9c42a8d2017-02-23 21:08:08 +00005 // CHECK-NEXT: icmp ne
6 if (__builtin_available(macos 10.12, *))
7 ;
8
Alex Lorenz701456b2020-10-28 22:48:59 -07009 // CHECK: call i32 @__isPlatformVersionAtLeast(i32 1, i32 10, i32 12, i32 0)
Erik Pilkington9c42a8d2017-02-23 21:08:08 +000010 // CHECK-NEXT: icmp ne
11 if (@available(macos 10.12, *))
12 ;
13
Alex Lorenz701456b2020-10-28 22:48:59 -070014 // CHECK: call i32 @__isPlatformVersionAtLeast(i32 1, i32 10, i32 12, i32 42)
Erik Pilkington9c42a8d2017-02-23 21:08:08 +000015 // CHECK-NEXT: icmp ne
16 if (__builtin_available(ios 10, macos 10.12.42, *))
17 ;
18
Alex Lorenz701456b2020-10-28 22:48:59 -070019 // CHECK-NOT: call i32 @__isPlatformVersionAtLeast
Erik Pilkington9c42a8d2017-02-23 21:08:08 +000020 // CHECK: br i1 true
21 if (__builtin_available(ios 10, *))
22 ;
23
24 // This check should be folded: our deployment target is 10.11.
Alex Lorenz701456b2020-10-28 22:48:59 -070025 // CHECK-NOT: call i32 @__isPlatformVersionAtLeast
Erik Pilkington9c42a8d2017-02-23 21:08:08 +000026 // CHECK: br i1 true
27 if (__builtin_available(macos 10.11, *))
28 ;
29}
30
Alex Lorenz701456b2020-10-28 22:48:59 -070031// CHECK: declare i32 @__isPlatformVersionAtLeast(i32, i32, i32, i32)