1
1
// compile-flags: -C no-prepopulate-passes
2
+ // min-llvm-version: 15.0 (for opaque pointers)
2
3
3
4
// Check that we use undef (and not zero) for uninitialized bytes in constants.
4
5
@@ -25,30 +26,30 @@ pub struct PartiallyUninit {
25
26
#[ no_mangle]
26
27
pub const fn fully_uninit ( ) -> MaybeUninit < [ u8 ; 10 ] > {
27
28
const M : MaybeUninit < [ u8 ; 10 ] > = MaybeUninit :: uninit ( ) ;
28
- // CHECK: call void @llvm.memcpy.{{.+}}({{i8\*| ptr}} align 1 %_0, {{i8\*| ptr}} align 1 {{.*}}[[FULLY_UNINIT]]{{.*}}, i{{(32|64)}} 10, i1 false)
29
+ // CHECK: call void @llvm.memcpy.{{.+}}(ptr align 1 %_0, ptr align 1 {{.*}}[[FULLY_UNINIT]]{{.*}}, i{{(32|64)}} 10, i1 false)
29
30
M
30
31
}
31
32
32
33
// CHECK-LABEL: @partially_uninit
33
34
#[ no_mangle]
34
35
pub const fn partially_uninit ( ) -> PartiallyUninit {
35
36
const X : PartiallyUninit = PartiallyUninit { x : 0xdeadbeef , y : MaybeUninit :: uninit ( ) } ;
36
- // CHECK: call void @llvm.memcpy.{{.+}}({{i8\*| ptr}} align 4 %_0, {{i8\*| ptr}} align 4 {{.*}}[[PARTIALLY_UNINIT]]{{.*}}, i{{(32|64)}} 16, i1 false)
37
+ // CHECK: call void @llvm.memcpy.{{.+}}(ptr align 4 %_0, ptr align 4 {{.*}}[[PARTIALLY_UNINIT]]{{.*}}, i{{(32|64)}} 16, i1 false)
37
38
X
38
39
}
39
40
40
41
// CHECK-LABEL: @uninit_padding_huge
41
42
#[ no_mangle]
42
43
pub const fn uninit_padding_huge ( ) -> [ ( u32 , u8 ) ; 4096 ] {
43
44
const X : [ ( u32 , u8 ) ; 4096 ] = [ ( 123 , 45 ) ; 4096 ] ;
44
- // CHECK: call void @llvm.memcpy.{{.+}}({{i8\*| ptr}} align 4 %_0, {{i8\*| ptr}} align 4 {{.*}}[[UNINIT_PADDING_HUGE]]{{.*}}, i{{(32|64)}} 32768, i1 false)
45
+ // CHECK: call void @llvm.memcpy.{{.+}}(ptr align 4 %_0, ptr align 4 {{.*}}[[UNINIT_PADDING_HUGE]]{{.*}}, i{{(32|64)}} 32768, i1 false)
45
46
X
46
47
}
47
48
48
49
// CHECK-LABEL: @fully_uninit_huge
49
50
#[ no_mangle]
50
51
pub const fn fully_uninit_huge ( ) -> MaybeUninit < [ u32 ; 4096 ] > {
51
52
const F : MaybeUninit < [ u32 ; 4096 ] > = MaybeUninit :: uninit ( ) ;
52
- // CHECK: call void @llvm.memcpy.{{.+}}({{i8\*| ptr}} align 4 %_0, {{i8\*| ptr}} align 4 {{.*}}[[FULLY_UNINIT_HUGE]]{{.*}}, i{{(32|64)}} 16384, i1 false)
53
+ // CHECK: call void @llvm.memcpy.{{.+}}(ptr align 4 %_0, ptr align 4 {{.*}}[[FULLY_UNINIT_HUGE]]{{.*}}, i{{(32|64)}} 16384, i1 false)
53
54
F
54
55
}
0 commit comments