diff --git a/src/libcore/num/mod.rs b/src/libcore/num/mod.rs index 6827364c0f80..3a3fd27d5253 100644 --- a/src/libcore/num/mod.rs +++ b/src/libcore/num/mod.rs @@ -47,6 +47,8 @@ assert_eq!(size_of::>(), size_of::<", st #[stable(feature = "nonzero", since = "1.28.0")] #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] #[repr(transparent)] + // FIXME: the rustc_layout_scalar_valid_range_start attr is marked as unused + #[cfg_attr(stage0, allow(unused_attributes))] #[rustc_layout_scalar_valid_range_start(1)] pub struct $Ty($Int); } @@ -68,6 +70,8 @@ assert_eq!(size_of::>(), size_of::<", st #[inline] pub fn new(n: $Int) -> Option { if n != 0 { + // FIXME: this unsafe block is actually needed + #[cfg_attr(stage0, allow(unused_unsafe))] Some(unsafe { $Ty(n) }) } else { None diff --git a/src/libcore/ptr.rs b/src/libcore/ptr.rs index 02eef07afd7a..979a7b231ecf 100644 --- a/src/libcore/ptr.rs +++ b/src/libcore/ptr.rs @@ -2718,6 +2718,8 @@ impl PartialOrd for *mut T { (if you also use #[may_dangle]), Send, and/or Sync")] #[doc(hidden)] #[repr(transparent)] +// FIXME: the rustc_layout_scalar_valid_range_start attr is marked as unused +#[cfg_attr(stage0, allow(unused_attributes))] #[rustc_layout_scalar_valid_range_start(1)] pub struct Unique { pointer: *const T, @@ -2783,6 +2785,8 @@ impl Unique { /// Creates a new `Unique` if `ptr` is non-null. pub fn new(ptr: *mut T) -> Option { if !ptr.is_null() { + // FIXME: this unsafe block is actually needed + #[cfg_attr(stage0, allow(unused_unsafe))] Some(unsafe { Unique { pointer: ptr as _, _marker: PhantomData } }) } else { None @@ -2839,6 +2843,8 @@ impl fmt::Pointer for Unique { #[unstable(feature = "ptr_internals", issue = "0")] impl<'a, T: ?Sized> From<&'a mut T> for Unique { fn from(reference: &'a mut T) -> Self { + // FIXME: this unsafe block is actually needed + #[cfg_attr(stage0, allow(unused_unsafe))] unsafe { Unique { pointer: reference as *mut T, _marker: PhantomData } } } } @@ -2846,6 +2852,8 @@ impl<'a, T: ?Sized> From<&'a mut T> for Unique { #[unstable(feature = "ptr_internals", issue = "0")] impl<'a, T: ?Sized> From<&'a T> for Unique { fn from(reference: &'a T) -> Self { + // FIXME: this unsafe block is actually needed + #[cfg_attr(stage0, allow(unused_unsafe))] unsafe { Unique { pointer: reference as *const T, _marker: PhantomData } } } } @@ -2853,6 +2861,8 @@ impl<'a, T: ?Sized> From<&'a T> for Unique { #[unstable(feature = "ptr_internals", issue = "0")] impl<'a, T: ?Sized> From> for Unique { fn from(p: NonNull) -> Self { + // FIXME: this unsafe block is actually needed + #[cfg_attr(stage0, allow(unused_unsafe))] unsafe { Unique { pointer: p.pointer, _marker: PhantomData } } } } @@ -3042,6 +3052,8 @@ impl hash::Hash for NonNull { impl From> for NonNull { #[inline] fn from(unique: Unique) -> Self { + // FIXME: this unsafe block is actually needed + #[cfg_attr(stage0, allow(unused_unsafe))] unsafe { NonNull { pointer: unique.pointer } } } } @@ -3050,6 +3062,8 @@ impl From> for NonNull { impl<'a, T: ?Sized> From<&'a mut T> for NonNull { #[inline] fn from(reference: &'a mut T) -> Self { + // FIXME: this unsafe block is actually needed + #[cfg_attr(stage0, allow(unused_unsafe))] unsafe { NonNull { pointer: reference as *mut T } } } } @@ -3058,6 +3072,8 @@ impl<'a, T: ?Sized> From<&'a mut T> for NonNull { impl<'a, T: ?Sized> From<&'a T> for NonNull { #[inline] fn from(reference: &'a T) -> Self { + // FIXME: this unsafe block is actually needed + #[cfg_attr(stage0, allow(unused_unsafe))] unsafe { NonNull { pointer: reference as *const T } } } }