Skip to content

Commit 956c7c0

Browse files
committed
!fixup add tests with nocfi, dso_local_equivalent constsnts.
1 parent 8a97ffe commit 956c7c0

File tree

2 files changed

+61
-27
lines changed

2 files changed

+61
-27
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals all --version 5
2+
; RUN: opt -p globalopt -S %s | FileCheck %s
3+
4+
@llvm.global_ctors = appending global [3 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @ctor, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @ctor_nocfi, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @ctor_dso_local_equivalent, ptr null }]
5+
6+
@foo = internal global ptr null
7+
8+
declare void @user(ptr)
9+
10+
;.
11+
; CHECK: @llvm.global_ctors = appending global [2 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @ctor, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @ctor_nocfi, ptr null }]
12+
; CHECK: @foo = internal global ptr null
13+
;.
14+
define void @ctor() {
15+
; CHECK-LABEL: define void @ctor() {
16+
; CHECK-NEXT: [[ENTRY:.*:]]
17+
; CHECK-NEXT: [[DST:%.*]] = alloca ptr, align 8
18+
; CHECK-NEXT: store ptr ptrauth (ptr @foo, i32 0), ptr [[DST]], align 8
19+
; CHECK-NEXT: call void @user(ptr [[DST]])
20+
; CHECK-NEXT: ret void
21+
;
22+
entry:
23+
%dst = alloca ptr, align 8
24+
store ptr ptrauth (ptr @foo, i32 0), ptr %dst, align 8
25+
call void @user(ptr %dst)
26+
ret void
27+
}
28+
29+
define void @ctor_nocfi() {
30+
; CHECK-LABEL: define void @ctor() {
31+
; CHECK-NEXT: [[ENTRY:.*:]]
32+
; CHECK-NEXT: [[DST:%.*]] = alloca ptr, align 8
33+
; CHECK-NEXT: store ptr ptrauth (ptr @foo, i32 0), ptr [[DST]], align 8
34+
; CHECK-NEXT: call void @user(ptr [[DST]])
35+
; CHECK-NEXT: ret void
36+
;
37+
entry:
38+
%dst = alloca ptr, align 8
39+
store ptr no_cfi @foo, ptr %dst, align 8
40+
call void @user(ptr %dst)
41+
ret void
42+
}
43+
44+
define void @fn() {
45+
ret void
46+
}
47+
48+
define void @ctor_dso_local_equivalent() {
49+
; CHECK-LABEL: define void @ctor() {
50+
; CHECK-NEXT: [[ENTRY:.*:]]
51+
; CHECK-NEXT: [[DST:%.*]] = alloca ptr, align 8
52+
; CHECK-NEXT: store ptr ptrauth (ptr @foo, i32 0), ptr [[DST]], align 8
53+
; CHECK-NEXT: call void @user(ptr [[DST]])
54+
; CHECK-NEXT: ret void
55+
;
56+
entry:
57+
%dst = alloca ptr, align 8
58+
store ptr dso_local_equivalent @fn, ptr %dst, align 8
59+
call void @user(ptr %dst)
60+
ret void
61+
}

llvm/test/Transforms/GlobalOpt/global-constructor-ptrauth-constant.ll

Lines changed: 0 additions & 27 deletions
This file was deleted.

0 commit comments

Comments
 (0)