]> git.lizzy.rs Git - rust.git/commitdiff
uninit intrinsic is gone
authorRalf Jung <post@ralfj.de>
Fri, 5 Jul 2019 16:44:58 +0000 (18:44 +0200)
committerRalf Jung <post@ralfj.de>
Sat, 6 Jul 2019 08:06:45 +0000 (10:06 +0200)
src/shims/intrinsics.rs

index 3f9c4e53f09d6f25ea15955c49f8355172055839..d62e921695905dc315ce69a529820f470665370b 100644 (file)
@@ -481,36 +481,6 @@ fn call_intrinsic(
                 this.write_scalar(res, dest)?;
             }
 
-            "uninit" => {
-                // Check fast path: we don't want to force an allocation in case the destination is a simple value,
-                // but we also do not want to create a new allocation with 0s and then copy that over.
-                // FIXME: We do not properly validate in case of ZSTs and when doing it in memory!
-                // However, this only affects direct calls of the intrinsic; calls to the stable
-                // functions wrapping them do get their validation.
-                // FIXME: should we check alignment for ZSTs?
-                if !dest.layout.is_zst() {
-                    match dest.layout.abi {
-                        layout::Abi::Scalar(..) => {
-                            let x = ScalarMaybeUndef::Undef;
-                            this.write_immediate(Immediate::Scalar(x), dest)?;
-                        }
-                        layout::Abi::ScalarPair(..) => {
-                            let x = ScalarMaybeUndef::Undef;
-                            this.write_immediate(Immediate::ScalarPair(x, x), dest)?;
-                        }
-                        _ => {
-                            // Do it in memory
-                            let mplace = this.force_allocation(dest)?;
-                            assert!(mplace.meta.is_none());
-                            let ptr = mplace.ptr.to_ptr()?;
-                            this.memory_mut()
-                                .get_mut(ptr.alloc_id)?
-                                .mark_definedness(ptr, dest.layout.size, false);
-                        }
-                    }
-                }
-            }
-
             "write_bytes" => {
                 let ty = substs.type_at(0);
                 let ty_layout = this.layout_of(ty)?;