|
2 | 2 | ; RUN: llvm-modextract -b -n 0 -o - %t | llvm-dis | FileCheck --check-prefix=M0 %s
|
3 | 3 | ; RUN: llvm-modextract -b -n 1 -o - %t | llvm-dis | FileCheck --check-prefix=M1 %s
|
4 | 4 |
|
5 |
| -; M0: @g = external constant [9 x i8*]{{$}} |
6 |
| -; M1: @g = constant [9 x i8*] |
7 |
| -@g = constant [9 x i8*] [ |
| 5 | +; M0: @g = external constant [10 x i8*]{{$}} |
| 6 | +; M1: @g = constant [10 x i8*] |
| 7 | +@g = constant [10 x i8*] [ |
8 | 8 | i8* bitcast (i64 (i8*)* @ok1 to i8*),
|
9 | 9 | i8* bitcast (i64 (i8*, i64)* @ok2 to i8*),
|
10 | 10 | i8* bitcast (void (i8*)* @wrongtype1 to i8*),
|
|
13 | 13 | i8* bitcast (i64 (i8*, i8*)* @wrongtype4 to i8*),
|
14 | 14 | i8* bitcast (i64 (i8*, i128)* @wrongtype5 to i8*),
|
15 | 15 | i8* bitcast (i64 (i8*)* @usesthis to i8*),
|
16 |
| - i8* bitcast (i8 (i8*)* @reads to i8*) |
| 16 | + i8* bitcast (i8 (i8*)* @reads to i8*), |
| 17 | + i8* bitcast (i8* (i8*, i8)* @attributedFunc to i8*) |
17 | 18 | ], !type !0
|
18 | 19 |
|
19 | 20 | ; M0: define i64 @ok1
|
@@ -76,4 +77,11 @@ define i8 @reads(i8* %this) {
|
76 | 77 | ret i8 %l
|
77 | 78 | }
|
78 | 79 |
|
| 80 | +; Check function attributes are copied over splitted module |
| 81 | +; M0: declare dso_local noundef i8* @attributedFunc(i8* noalias, i8 zeroext) unnamed_addr #[[ATTR0:[0-9]+]] |
| 82 | +; M1: declare dso_local void @attributedFunc() unnamed_addr #[[ATTR1:[0-9]+]] |
| 83 | +declare dso_local noundef i8* @attributedFunc(i8* noalias, i8 zeroext) unnamed_addr alwaysinline willreturn |
| 84 | +; M0: attributes #[[ATTR0]] = { alwaysinline willreturn } |
| 85 | +; M1: attributes #[[ATTR1]] = { alwaysinline willreturn } |
| 86 | + |
79 | 87 | !0 = !{i32 0, !"typeid"}
|
0 commit comments