Always name the return place.
This commit is contained in:
parent
d4096e0412
commit
d7983a2f23
25 changed files with 191 additions and 195 deletions
|
@ -1,4 +1,5 @@
|
|||
// compile-flags: -C no-prepopulate-passes
|
||||
// min-llvm-version: 15.0 (for opaque pointers)
|
||||
|
||||
// Check that we use undef (and not zero) for uninitialized bytes in constants.
|
||||
|
||||
|
@ -8,7 +9,7 @@ use std::mem::MaybeUninit;
|
|||
|
||||
pub struct PartiallyUninit {
|
||||
x: u32,
|
||||
y: MaybeUninit<[u8; 10]>
|
||||
y: MaybeUninit<[u8; 10]>,
|
||||
}
|
||||
|
||||
// CHECK: [[FULLY_UNINIT:@[0-9]+]] = private unnamed_addr constant <{ [10 x i8] }> undef
|
||||
|
@ -25,7 +26,7 @@ pub struct PartiallyUninit {
|
|||
#[no_mangle]
|
||||
pub const fn fully_uninit() -> MaybeUninit<[u8; 10]> {
|
||||
const M: MaybeUninit<[u8; 10]> = MaybeUninit::uninit();
|
||||
// CHECK: call void @llvm.memcpy.{{.+}}({{i8\*|ptr}} align 1 %{{[0-9]+}}, {{i8\*|ptr}} align 1 {{.*}}[[FULLY_UNINIT]]{{.*}}, i{{(32|64)}} 10, i1 false)
|
||||
// CHECK: call void @llvm.memcpy.{{.+}}(ptr align 1 %_0, ptr align 1 {{.*}}[[FULLY_UNINIT]]{{.*}}, i{{(32|64)}} 10, i1 false)
|
||||
M
|
||||
}
|
||||
|
||||
|
@ -33,7 +34,7 @@ pub const fn fully_uninit() -> MaybeUninit<[u8; 10]> {
|
|||
#[no_mangle]
|
||||
pub const fn partially_uninit() -> PartiallyUninit {
|
||||
const X: PartiallyUninit = PartiallyUninit { x: 0xdeadbeef, y: MaybeUninit::uninit() };
|
||||
// CHECK: call void @llvm.memcpy.{{.+}}({{i8\*|ptr}} align 4 %{{[0-9]+}}, {{i8\*|ptr}} align 4 {{.*}}[[PARTIALLY_UNINIT]]{{.*}}, i{{(32|64)}} 16, i1 false)
|
||||
// CHECK: call void @llvm.memcpy.{{.+}}(ptr align 4 %_0, ptr align 4 {{.*}}[[PARTIALLY_UNINIT]]{{.*}}, i{{(32|64)}} 16, i1 false)
|
||||
X
|
||||
}
|
||||
|
||||
|
@ -41,7 +42,7 @@ pub const fn partially_uninit() -> PartiallyUninit {
|
|||
#[no_mangle]
|
||||
pub const fn uninit_padding_huge() -> [(u32, u8); 4096] {
|
||||
const X: [(u32, u8); 4096] = [(123, 45); 4096];
|
||||
// CHECK: call void @llvm.memcpy.{{.+}}({{i8\*|ptr}} align 4 %{{[0-9]+}}, {{i8\*|ptr}} align 4 {{.*}}[[UNINIT_PADDING_HUGE]]{{.*}}, i{{(32|64)}} 32768, i1 false)
|
||||
// CHECK: call void @llvm.memcpy.{{.+}}(ptr align 4 %_0, ptr align 4 {{.*}}[[UNINIT_PADDING_HUGE]]{{.*}}, i{{(32|64)}} 32768, i1 false)
|
||||
X
|
||||
}
|
||||
|
||||
|
@ -49,6 +50,6 @@ pub const fn uninit_padding_huge() -> [(u32, u8); 4096] {
|
|||
#[no_mangle]
|
||||
pub const fn fully_uninit_huge() -> MaybeUninit<[u32; 4096]> {
|
||||
const F: MaybeUninit<[u32; 4096]> = MaybeUninit::uninit();
|
||||
// CHECK: call void @llvm.memcpy.{{.+}}({{i8\*|ptr}} align 4 %{{[0-9]+}}, {{i8\*|ptr}} align 4 {{.*}}[[FULLY_UNINIT_HUGE]]{{.*}}, i{{(32|64)}} 16384, i1 false)
|
||||
// CHECK: call void @llvm.memcpy.{{.+}}(ptr align 4 %_0, ptr align 4 {{.*}}[[FULLY_UNINIT_HUGE]]{{.*}}, i{{(32|64)}} 16384, i1 false)
|
||||
F
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue