Skip to content

Commit 6569610

Browse files
committed
[clang] Update ptrauth vtable tests folowing RTTI IRGen change. NFC.
6bb6300 changes the order in which RTTI globals are created.
1 parent 8e9932c commit 6569610

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

clang/test/CodeGenCXX/ptrauth-rtti-layout-wrapper-globals.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33

44
struct A { int a; };
55

6+
// CHECK: @_ZTI1A = linkonce_odr hidden constant { ptr, ptr } { ptr @_ZTVN10__cxxabiv117__class_type_infoE.ptrauth, ptr inttoptr (i64 add (i64 ptrtoint (ptr @_ZTS1A to i64), i64 -9223372036854775808) to ptr) }
67
// CHECK: @_ZTVN10__cxxabiv117__class_type_infoE = external global [0 x ptr]
78
// CHECK: @_ZTVN10__cxxabiv117__class_type_infoE.ptrauth = private constant { ptr, i32, i64, i64 } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), i32 2, i64 0, i64 0 }, section "llvm.ptrauth", align 8
89
// CHECK: @_ZTS1A = linkonce_odr hidden constant [3 x i8] c"1A\00"
9-
// CHECK: @_ZTI1A = linkonce_odr hidden constant { ptr, ptr } { ptr @_ZTVN10__cxxabiv117__class_type_infoE.ptrauth, ptr inttoptr (i64 add (i64 ptrtoint (ptr @_ZTS1A to i64), i64 -9223372036854775808) to ptr) }
1010

1111
auto ATI = typeid(A);

clang/test/CodeGenCXX/ptrauth-vtable-virtual-inheritance-thunk-wrapper-globals.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,25 @@
1010
// CHECK: @_ZTV1G = unnamed_addr constant { [6 x ptr], [7 x ptr], [11 x ptr], [11 x ptr] } { [6 x ptr] [ptr inttoptr (i64 16 to ptr), ptr inttoptr (i64 24 to ptr), ptr null, ptr @_ZTI1G, ptr @_ZN1GD1Ev.ptrauth, ptr @_ZN1GD0Ev.ptrauth], [7 x ptr] [ptr inttoptr (i64 16 to ptr), ptr inttoptr (i64 -8 to ptr), ptr @_ZTI1G, ptr @_ZThn8_N1GD1Ev.ptrauth, ptr @_ZThn8_N1GD0Ev.ptrauth, ptr @_ZN1D1gEv.ptrauth.73, ptr @_ZN1D1hEz.ptrauth.74], [11 x ptr] [ptr inttoptr (i64 -16 to ptr), ptr null, ptr null, ptr null, ptr inttoptr (i64 -16 to ptr), ptr @_ZTI1G, ptr @_ZN1E1fEv.ptrauth.75, ptr @_ZN1E1gEv.ptrauth.76, ptr @_ZN1E1hEz.ptrauth.77, ptr @_ZTv0_n48_N1GD1Ev.ptrauth, ptr @_ZTv0_n48_N1GD0Ev.ptrauth], [11 x ptr] [ptr inttoptr (i64 -24 to ptr), ptr inttoptr (i64 -16 to ptr), ptr inttoptr (i64 -16 to ptr), ptr null, ptr inttoptr (i64 -24 to ptr), ptr @_ZTI1G, ptr @_ZN1A1fEv.ptrauth.78, ptr @_ZTv0_n32_N1D1gEv.ptrauth.79, ptr @_ZTv0_n40_N1D1hEz.ptrauth.80, ptr @_ZTv0_n48_N1GD1EvU11__vtptrauthILj0Lb0Lj62866E.ptrauth, ptr @_ZTv0_n48_N1GD0EvU11__vtptrauthILj0Lb0Lj62866E.ptrauth] }, align 8
1111
// CHECK: @_ZTT1G = unnamed_addr constant [8 x ptr] [ptr @_ZTV1G.ptrauth, ptr @_ZTC1G0_1C.ptrauth, ptr @_ZTC1G0_1C.ptrauth.68, ptr @_ZTC1G8_1D.ptrauth, ptr @_ZTC1G8_1D.ptrauth.69, ptr @_ZTV1G.ptrauth.70, ptr @_ZTV1G.ptrauth.71, ptr @_ZTV1G.ptrauth.72], align 8
1212
// CHECK: @_ZTV1A = unnamed_addr constant { [7 x ptr] } { [7 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZN1A1fEv.ptrauth, ptr @_ZN1A1gEv.ptrauth, ptr @_ZN1A1hEz.ptrauth, ptr @_ZN1AD1Ev.ptrauth, ptr @_ZN1AD0Ev.ptrauth] }, align 8
13+
// CHECK: @_ZTI1A = constant { ptr, ptr } { ptr @_ZTVN10__cxxabiv117__class_type_infoE.ptrauth, ptr @_ZTS1A }, align 8
1314
// CHECK: @_ZTVN10__cxxabiv117__class_type_infoE = external global [0 x ptr]
1415
// CHECK: @_ZTVN10__cxxabiv117__class_type_infoE.ptrauth = private constant { ptr, i32, i64, i64 } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), i32 2, i64 0, i64 0 }, section "llvm.ptrauth", align 8
1516
// CHECK: @_ZTS1A = constant [3 x i8] c"1A\00", align 1
16-
// CHECK: @_ZTI1A = constant { ptr, ptr } { ptr @_ZTVN10__cxxabiv117__class_type_infoE.ptrauth, ptr @_ZTS1A }, align 8
1717
// CHECK: @_ZN1A1fEv.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZN1A1fEv, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [7 x ptr] }, ptr @_ZTV1A, i32 0, i32 0, i32 2) to i64), i64 55636 }, section "llvm.ptrauth", align 8
1818
// CHECK: @_ZN1A1gEv.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZN1A1gEv, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [7 x ptr] }, ptr @_ZTV1A, i32 0, i32 0, i32 3) to i64), i64 19402 }, section "llvm.ptrauth", align 8
1919
// CHECK: @_ZN1A1hEz.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZN1A1hEz, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [7 x ptr] }, ptr @_ZTV1A, i32 0, i32 0, i32 4) to i64), i64 31735 }, section "llvm.ptrauth", align 8
2020
// CHECK: @_ZN1AD1Ev.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZN1AD1Ev, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [7 x ptr] }, ptr @_ZTV1A, i32 0, i32 0, i32 5) to i64), i64 2043 }, section "llvm.ptrauth", align 8
2121
// CHECK: @_ZN1AD0Ev.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZN1AD0Ev, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [7 x ptr] }, ptr @_ZTV1A, i32 0, i32 0, i32 6) to i64), i64 63674 }, section "llvm.ptrauth", align 8
2222
// CHECK: @_ZTV1C.ptrauth = private constant { ptr, i32, i64, i64 } { ptr getelementptr inbounds inrange(-24, 16) ({ [5 x ptr], [11 x ptr] }, ptr @_ZTV1C, i32 0, i32 0, i32 3), i32 2, i64 0, i64 0 }, section "llvm.ptrauth"
2323
// CHECK: @_ZTV1C.ptrauth.1 = private constant { ptr, i32, i64, i64 } { ptr getelementptr inbounds inrange(-48, 40) ({ [5 x ptr], [11 x ptr] }, ptr @_ZTV1C, i32 0, i32 1, i32 6), i32 2, i64 0, i64 0 }, section "llvm.ptrauth"
24+
// CHECK: @_ZTI1C = constant { ptr, ptr, i32, i32, ptr, i64 } { ptr @_ZTVN10__cxxabiv121__vmi_class_type_infoE.ptrauth, ptr @_ZTS1C, i32 0, i32 1, ptr @_ZTI1B, i64 -6141 }, align 8
2425
// CHECK: @_ZTVN10__cxxabiv121__vmi_class_type_infoE = external global [0 x ptr]
2526
// CHECK: @_ZTVN10__cxxabiv121__vmi_class_type_infoE.ptrauth = private constant { ptr, i32, i64, i64 } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv121__vmi_class_type_infoE, i64 2), i32 2, i64 0, i64 0 }, section "llvm.ptrauth", align 8
2627
// CHECK: @_ZTS1C = constant [3 x i8] c"1C\00", align 1
28+
// CHECK: @_ZTI1B = linkonce_odr hidden constant { ptr, ptr, ptr } { ptr @_ZTVN10__cxxabiv120__si_class_type_infoE.ptrauth, ptr inttoptr (i64 add (i64 ptrtoint (ptr @_ZTS1B to i64), i64 -9223372036854775808) to ptr), ptr @_ZTI1A }, align 8
2729
// CHECK: @_ZTVN10__cxxabiv120__si_class_type_infoE = external global [0 x ptr]
2830
// CHECK: @_ZTVN10__cxxabiv120__si_class_type_infoE.ptrauth = private constant { ptr, i32, i64, i64 } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2), i32 2, i64 0, i64 0 }, section "llvm.ptrauth", align 8
2931
// CHECK: @_ZTS1B = linkonce_odr hidden constant [3 x i8] c"1B\00", align 1
30-
// CHECK: @_ZTI1B = linkonce_odr hidden constant { ptr, ptr, ptr } { ptr @_ZTVN10__cxxabiv120__si_class_type_infoE.ptrauth, ptr inttoptr (i64 add (i64 ptrtoint (ptr @_ZTS1B to i64), i64 -9223372036854775808) to ptr), ptr @_ZTI1A }, align 8
31-
// CHECK: @_ZTI1C = constant { ptr, ptr, i32, i32, ptr, i64 } { ptr @_ZTVN10__cxxabiv121__vmi_class_type_infoE.ptrauth, ptr @_ZTS1C, i32 0, i32 1, ptr @_ZTI1B, i64 -6141 }, align 8
3232
// CHECK: @_ZN1CD1Ev.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZN1CD1Ev, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [5 x ptr], [11 x ptr] }, ptr @_ZTV1C, i32 0, i32 0, i32 3) to i64), i64 31214 }, section "llvm.ptrauth", align 8
3333
// CHECK: @_ZN1CD0Ev.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZN1CD0Ev, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [5 x ptr], [11 x ptr] }, ptr @_ZTV1C, i32 0, i32 0, i32 4) to i64), i64 8507 }, section "llvm.ptrauth", align 8
3434
// CHECK: @_ZN1A1fEv.ptrauth.2 = private constant { ptr, i32, i64, i64 } { ptr @_ZN1A1fEv, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [5 x ptr], [11 x ptr] }, ptr @_ZTV1C, i32 0, i32 1, i32 6) to i64), i64 55636 }, section "llvm.ptrauth", align 8
@@ -38,8 +38,8 @@
3838
// CHECK: @_ZTv0_n48_N1CD0Ev.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZTv0_n48_N1CD0Ev, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [5 x ptr], [11 x ptr] }, ptr @_ZTV1C, i32 0, i32 1, i32 10) to i64), i64 63674 }, section "llvm.ptrauth", align 8
3939
// CHECK: @_ZTV1D.ptrauth = private constant { ptr, i32, i64, i64 } { ptr getelementptr inbounds inrange(-24, 32) ({ [7 x ptr], [11 x ptr] }, ptr @_ZTV1D, i32 0, i32 0, i32 3), i32 2, i64 0, i64 0 }, section "llvm.ptrauth", align 8
4040
// CHECK: @_ZTV1D.ptrauth.5 = private constant { ptr, i32, i64, i64 } { ptr getelementptr inbounds inrange(-48, 40) ({ [7 x ptr], [11 x ptr] }, ptr @_ZTV1D, i32 0, i32 1, i32 6), i32 2, i64 0, i64 0 }, section "llvm.ptrauth", align 8
41-
// CHECK: @_ZTS1D = constant [3 x i8] c"1D\00", align 1
4241
// CHECK: @_ZTI1D = constant { ptr, ptr, i32, i32, ptr, i64 } { ptr @_ZTVN10__cxxabiv121__vmi_class_type_infoE.ptrauth, ptr @_ZTS1D, i32 0, i32 1, ptr @_ZTI1B, i64 -6141 }, align 8
42+
// CHECK: @_ZTS1D = constant [3 x i8] c"1D\00", align 1
4343
// CHECK: @_ZN1DD1Ev.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZN1DD1Ev, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [7 x ptr], [11 x ptr] }, ptr @_ZTV1D, i32 0, i32 0, i32 3) to i64), i64 59423 }, section "llvm.ptrauth", align 8
4444
// CHECK: @_ZN1DD0Ev.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZN1DD0Ev, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [7 x ptr], [11 x ptr] }, ptr @_ZTV1D, i32 0, i32 0, i32 4) to i64), i64 25900 }, section "llvm.ptrauth", align 8
4545
// CHECK: @_ZN1D1gEv.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZN1D1gEv, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [7 x ptr], [11 x ptr] }, ptr @_ZTV1D, i32 0, i32 0, i32 5) to i64), i64 59070 }, section "llvm.ptrauth", align 8
@@ -50,8 +50,8 @@
5050
// CHECK: @_ZTv0_n48_N1DD1Ev.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZTv0_n48_N1DD1Ev, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [7 x ptr], [11 x ptr] }, ptr @_ZTV1D, i32 0, i32 1, i32 9) to i64), i64 2043 }, section "llvm.ptrauth", align 8
5151
// CHECK: @_ZTv0_n48_N1DD0Ev.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZTv0_n48_N1DD0Ev, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [7 x ptr], [11 x ptr] }, ptr @_ZTV1D, i32 0, i32 1, i32 10) to i64), i64 63674 }, section "llvm.ptrauth", align 8
5252
// CHECK: @_ZTV1E = unnamed_addr constant { [7 x ptr] } { [7 x ptr] [ptr null, ptr @_ZTI1E, ptr @_ZN1E1fEv.ptrauth, ptr @_ZN1E1gEv.ptrauth, ptr @_ZN1E1hEz.ptrauth, ptr @_ZN1ED1Ev.ptrauth, ptr @_ZN1ED0Ev.ptrauth] }, align 8
53-
// CHECK: @_ZTS1E = constant [3 x i8] c"1E\00", align 1
5453
// CHECK: @_ZTI1E = constant { ptr, ptr } { ptr @_ZTVN10__cxxabiv117__class_type_infoE.ptrauth, ptr @_ZTS1E }, align 8
54+
// CHECK: @_ZTS1E = constant [3 x i8] c"1E\00", align 1
5555
// CHECK: @_ZN1E1fEv.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZN1E1fEv, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [7 x ptr] }, ptr @_ZTV1E, i32 0, i32 0, i32 2) to i64), i64 28408 }, section "llvm.ptrauth", align 8
5656
// CHECK: @_ZN1E1gEv.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZN1E1gEv, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [7 x ptr] }, ptr @_ZTV1E, i32 0, i32 0, i32 3) to i64), i64 22926 }, section "llvm.ptrauth", align 8
5757
// CHECK: @_ZN1E1hEz.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZN1E1hEz, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [7 x ptr] }, ptr @_ZTV1E, i32 0, i32 0, i32 4) to i64), i64 9832 }, section "llvm.ptrauth", align 8
@@ -83,8 +83,8 @@
8383
// CHECK: @_ZTV1F.ptrauth.25 = private constant { ptr, i32, i64, i64 } { ptr getelementptr inbounds inrange(-48, 40) ({ [6 x ptr], [7 x ptr], [11 x ptr], [11 x ptr] }, ptr @_ZTV1F, i32 0, i32 2, i32 6), i32 2, i64 0, i64 0 }, section "llvm.ptrauth", align 8
8484
// CHECK: @_ZTV1F.ptrauth.26 = private constant { ptr, i32, i64, i64 } { ptr getelementptr inbounds inrange(-24, 32) ({ [6 x ptr], [7 x ptr], [11 x ptr], [11 x ptr] }, ptr @_ZTV1F, i32 0, i32 1, i32 3), i32 2, i64 0, i64 0 }, section "llvm.ptrauth", align 8
8585
// CHECK: @_ZTV1F.ptrauth.27 = private constant { ptr, i32, i64, i64 } { ptr getelementptr inbounds inrange(-48, 40) ({ [6 x ptr], [7 x ptr], [11 x ptr], [11 x ptr] }, ptr @_ZTV1F, i32 0, i32 3, i32 6), i32 2, i64 0, i64 0 }, section "llvm.ptrauth", align 8
86-
// CHECK: @_ZTS1F = constant [3 x i8] c"1F\00", align 1
8786
// CHECK: @_ZTI1F = constant { ptr, ptr, i32, i32, ptr, i64, ptr, i64, ptr, i64 } { ptr @_ZTVN10__cxxabiv121__vmi_class_type_infoE.ptrauth, ptr @_ZTS1F, i32 3, i32 3, ptr @_ZTI1C, i64 2, ptr @_ZTI1D, i64 2050, ptr @_ZTI1E, i64 -8189 }, align 8
87+
// CHECK: @_ZTS1F = constant [3 x i8] c"1F\00", align 1
8888
// CHECK: @_ZN1FD1Ev.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZN1FD1Ev, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [6 x ptr], [7 x ptr], [11 x ptr], [11 x ptr] }, ptr @_ZTV1F, i32 0, i32 0, i32 4) to i64), i64 31214 }, section "llvm.ptrauth", align 8
8989
// CHECK: @_ZN1FD0Ev.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZN1FD0Ev, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [6 x ptr], [7 x ptr], [11 x ptr], [11 x ptr] }, ptr @_ZTV1F, i32 0, i32 0, i32 5) to i64), i64 8507 }, section "llvm.ptrauth", align 8
9090
// CHECK: @_ZThn8_N1FD1Ev.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZThn8_N1FD1Ev, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [6 x ptr], [7 x ptr], [11 x ptr], [11 x ptr] }, ptr @_ZTV1F, i32 0, i32 1, i32 3) to i64), i64 59423 }, section "llvm.ptrauth", align 8
@@ -143,8 +143,8 @@
143143
// CHECK: @_ZTV1G.ptrauth.70 = private constant { ptr, i32, i64, i64 } { ptr getelementptr inbounds inrange(-48, 40) ({ [6 x ptr], [7 x ptr], [11 x ptr], [11 x ptr] }, ptr @_ZTV1G, i32 0, i32 2, i32 6), i32 2, i64 0, i64 0 }, section "llvm.ptrauth", align 8
144144
// CHECK: @_ZTV1G.ptrauth.71 = private constant { ptr, i32, i64, i64 } { ptr getelementptr inbounds inrange(-48, 40) ({ [6 x ptr], [7 x ptr], [11 x ptr], [11 x ptr] }, ptr @_ZTV1G, i32 0, i32 3, i32 6), i32 2, i64 0, i64 0 }, section "llvm.ptrauth", align 8
145145
// CHECK: @_ZTV1G.ptrauth.72 = private constant { ptr, i32, i64, i64 } { ptr getelementptr inbounds inrange(-24, 32) ({ [6 x ptr], [7 x ptr], [11 x ptr], [11 x ptr] }, ptr @_ZTV1G, i32 0, i32 1, i32 3), i32 2, i64 0, i64 0 }, section "llvm.ptrauth", align 8
146-
// CHECK: @_ZTS1G = constant [3 x i8] c"1G\00", align 1
147146
// CHECK: @_ZTI1G = constant { ptr, ptr, i32, i32, ptr, i64, ptr, i64, ptr, i64 } { ptr @_ZTVN10__cxxabiv121__vmi_class_type_infoE.ptrauth, ptr @_ZTS1G, i32 3, i32 3, ptr @_ZTI1E, i64 -8189, ptr @_ZTI1C, i64 2, ptr @_ZTI1D, i64 2050 }, align 8
147+
// CHECK: @_ZTS1G = constant [3 x i8] c"1G\00", align 1
148148
// CHECK: @_ZN1GD1Ev.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZN1GD1Ev, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [6 x ptr], [7 x ptr], [11 x ptr], [11 x ptr] }, ptr @_ZTV1G, i32 0, i32 0, i32 4) to i64), i64 31214 }, section "llvm.ptrauth", align 8
149149
// CHECK: @_ZN1GD0Ev.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZN1GD0Ev, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [6 x ptr], [7 x ptr], [11 x ptr], [11 x ptr] }, ptr @_ZTV1G, i32 0, i32 0, i32 5) to i64), i64 8507 }, section "llvm.ptrauth", align 8
150150
// CHECK: @_ZThn8_N1GD1Ev.ptrauth = private constant { ptr, i32, i64, i64 } { ptr @_ZThn8_N1GD1Ev, i32 0, i64 ptrtoint (ptr getelementptr inbounds ({ [6 x ptr], [7 x ptr], [11 x ptr], [11 x ptr] }, ptr @_ZTV1G, i32 0, i32 1, i32 3) to i64), i64 59423 }, section "llvm.ptrauth", align 8

0 commit comments

Comments
 (0)