|
3 | 3 |
|
4 | 4 | extern int external;
|
5 | 5 |
|
6 |
| -// CHECK: @ptr1 = global ptr ptrauth (ptr @external, i32 0, i64 26) |
7 |
| -void *ptr1 = __builtin_ptrauth_sign_constant(&external, 0, 26); |
| 6 | +// CHECK: @ptr1 = global ptr ptrauth (ptr @external, i32 0) |
| 7 | +void *ptr1 = __builtin_ptrauth_sign_constant(&external, 0, 0); |
8 | 8 |
|
9 |
| -// CHECK: @ptr2 = global ptr ptrauth (ptr @external, i32 2, i64 26, ptr @ptr2) |
10 |
| -void *ptr2 = __builtin_ptrauth_sign_constant(&external, 2, __builtin_ptrauth_blend_discriminator(&ptr2, 26)); |
| 9 | +// CHECK: @ptr2 = global ptr ptrauth (ptr @external, i32 0, i64 1234) |
| 10 | +void *ptr2 = __builtin_ptrauth_sign_constant(&external, 0, 1234); |
11 | 11 |
|
12 |
| -// CHECK: @ptr3 = global ptr null |
13 |
| -void *ptr3; |
| 12 | +// CHECK: @ptr3 = global ptr ptrauth (ptr @external, i32 2, i64 0, ptr @ptr3) |
| 13 | +void *ptr3 = __builtin_ptrauth_sign_constant(&external, 2, &ptr3); |
| 14 | + |
| 15 | +// CHECK: @ptr4 = global ptr ptrauth (ptr @external, i32 2, i64 26, ptr @ptr4) |
| 16 | +void *ptr4 = __builtin_ptrauth_sign_constant(&external, 2, __builtin_ptrauth_blend_discriminator(&ptr4, 26)); |
| 17 | + |
| 18 | +// CHECK: @ptr5 = global ptr null |
| 19 | +void *ptr5; |
14 | 20 |
|
15 | 21 | void test_sign_constant_code() {
|
16 | 22 | // CHECK-LABEL: define {{.*}}void @test_sign_constant_code()
|
17 | 23 | // CHECK-NEXT: entry:
|
18 |
| -// CHECK-NEXT: store ptr ptrauth (ptr @external, i32 2, i64 1234), ptr @ptr3, align 8 |
| 24 | +// CHECK-NEXT: store ptr ptrauth (ptr @external, i32 0), ptr @ptr1, align 8 |
| 25 | +// CHECK-NEXT: store ptr ptrauth (ptr @external, i32 2, i64 1234), ptr @ptr2, align 8 |
| 26 | +// CHECK-NEXT: store ptr ptrauth (ptr @external, i32 2, i64 0, ptr @ptr3), ptr @ptr3, align 8 |
| 27 | +// CHECK-NEXT: store ptr ptrauth (ptr @external, i32 2, i64 1234, ptr @ptr4), ptr @ptr4, align 8 |
19 | 28 | // CHECK-NEXT: ret void
|
20 |
| - ptr3 = __builtin_ptrauth_sign_constant(&external, 2, 1234); |
| 29 | + ptr1 = __builtin_ptrauth_sign_constant(&external, 0, 0); |
| 30 | + ptr2 = __builtin_ptrauth_sign_constant(&external, 2, 1234); |
| 31 | + ptr3 = __builtin_ptrauth_sign_constant(&external, 2, &ptr3); |
| 32 | + ptr4 = __builtin_ptrauth_sign_constant(&external, 2, __builtin_ptrauth_blend_discriminator(&ptr4, 1234)); |
21 | 33 | }
|
0 commit comments