Skip to content

Commit

Permalink
allow unused warnings related to rustc_layout_scalar_valid_range_start
Browse files Browse the repository at this point in the history
  • Loading branch information
pietroalbini committed Jan 16, 2019
1 parent dc25c80 commit b54a00a
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/libcore/num/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ assert_eq!(size_of::<Option<std::num::", stringify!($Ty), ">>(), 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);
}
Expand All @@ -68,6 +70,8 @@ assert_eq!(size_of::<Option<std::num::", stringify!($Ty), ">>(), size_of::<", st
#[inline]
pub fn new(n: $Int) -> Option<Self> {
if n != 0 {
// FIXME: this unsafe block is actually needed
#[cfg_attr(stage0, allow(unused_unsafe))]
Some(unsafe { $Ty(n) })
} else {
None
Expand Down
16 changes: 16 additions & 0 deletions src/libcore/ptr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2718,6 +2718,8 @@ impl<T: ?Sized> 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<T: ?Sized> {
pointer: *const T,
Expand Down Expand Up @@ -2783,6 +2785,8 @@ impl<T: ?Sized> Unique<T> {
/// Creates a new `Unique` if `ptr` is non-null.
pub fn new(ptr: *mut T) -> Option<Self> {
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
Expand Down Expand Up @@ -2839,20 +2843,26 @@ impl<T: ?Sized> fmt::Pointer for Unique<T> {
#[unstable(feature = "ptr_internals", issue = "0")]
impl<'a, T: ?Sized> From<&'a mut T> for Unique<T> {
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 } }
}
}

#[unstable(feature = "ptr_internals", issue = "0")]
impl<'a, T: ?Sized> From<&'a T> for Unique<T> {
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 } }
}
}

#[unstable(feature = "ptr_internals", issue = "0")]
impl<'a, T: ?Sized> From<NonNull<T>> for Unique<T> {
fn from(p: NonNull<T>) -> Self {
// FIXME: this unsafe block is actually needed
#[cfg_attr(stage0, allow(unused_unsafe))]
unsafe { Unique { pointer: p.pointer, _marker: PhantomData } }
}
}
Expand Down Expand Up @@ -3042,6 +3052,8 @@ impl<T: ?Sized> hash::Hash for NonNull<T> {
impl<T: ?Sized> From<Unique<T>> for NonNull<T> {
#[inline]
fn from(unique: Unique<T>) -> Self {
// FIXME: this unsafe block is actually needed
#[cfg_attr(stage0, allow(unused_unsafe))]
unsafe { NonNull { pointer: unique.pointer } }
}
}
Expand All @@ -3050,6 +3062,8 @@ impl<T: ?Sized> From<Unique<T>> for NonNull<T> {
impl<'a, T: ?Sized> From<&'a mut T> for NonNull<T> {
#[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 } }
}
}
Expand All @@ -3058,6 +3072,8 @@ impl<'a, T: ?Sized> From<&'a mut T> for NonNull<T> {
impl<'a, T: ?Sized> From<&'a T> for NonNull<T> {
#[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 } }
}
}

0 comments on commit b54a00a

Please sign in to comment.