diff --git a/src/etc/natvis/liballoc.natvis b/src/etc/natvis/liballoc.natvis
index b9454573de8..d001f40fccb 100644
--- a/src/etc/natvis/liballoc.natvis
+++ b/src/etc/natvis/liballoc.natvis
@@ -64,12 +64,15 @@
ptr.pointer->value
- ptr.pointer->strong
+ - ptr.pointer->weak
{ptr.pointer->value}
ptr.pointer->value
+ - ptr.pointer->strong
+ - ptr.pointer->weak
@@ -78,12 +81,15 @@
ptr.pointer->data
- ptr.pointer->strong
+ - ptr.pointer->weak
{ptr.pointer->data}
ptr.pointer->data
+ - ptr.pointer->strong
+ - ptr.pointer->weak
diff --git a/src/test/debuginfo/marker-types.rs b/src/test/debuginfo/marker-types.rs
index 52d70bda908..f27a5d20c70 100644
--- a/src/test/debuginfo/marker-types.rs
+++ b/src/test/debuginfo/marker-types.rs
@@ -21,9 +21,17 @@
// cdb-check: [capacity] : 0x4 [Type: unsigned __int64]
// cdb-check: [chars] : "this"
+// cdb-command: dx unique
+// cdb-check:unique : Unique(0x[...]: (0x2a, 4321)) [Type: core::ptr::unique::Unique >]
+// cdb-check: [] [Type: core::ptr::unique::Unique >]
+// cdb-check: [0] : 0x2a [Type: unsigned __int64]
+// cdb-check: [1] : 4321 [Type: int]
+
+#![feature(ptr_internals)]
+
use std::mem::ManuallyDrop;
use std::pin::Pin;
-use std::ptr::NonNull;
+use std::ptr::{NonNull, Unique};
fn main() {
let nonnull: NonNull<_> = (&12u32).into();
@@ -33,6 +41,8 @@ fn main() {
let mut s = "this".to_string();
let pin = Pin::new(&mut s);
+ let unique: Unique<_> = (&mut (42u64, 4321i32)).into();
+
zzz(); // #break
}
diff --git a/src/test/debuginfo/rc_arc.rs b/src/test/debuginfo/rc_arc.rs
index 24623bc972e..55cddf7c6c6 100644
--- a/src/test/debuginfo/rc_arc.rs
+++ b/src/test/debuginfo/rc_arc.rs
@@ -31,29 +31,37 @@
// cdb-check:r,d : 42 [Type: alloc::rc::Rc]
// cdb-check: [] [Type: alloc::rc::Rc]
// cdb-check: [Reference count] : 2 [Type: core::cell::Cell]
+// cdb-check: [Weak reference count] : 2 [Type: core::cell::Cell]
// cdb-command:dx r1,d
// cdb-check:r1,d : 42 [Type: alloc::rc::Rc]
// cdb-check: [] [Type: alloc::rc::Rc]
// cdb-check: [Reference count] : 2 [Type: core::cell::Cell]
+// cdb-check: [Weak reference count] : 2 [Type: core::cell::Cell]
// cdb-command:dx w1,d
// cdb-check:w1,d : 42 [Type: alloc::rc::Weak]
// cdb-check: [] [Type: alloc::rc::Weak]
+// cdb-check: [Reference count] : 2 [Type: core::cell::Cell]
+// cdb-check: [Weak reference count] : 2 [Type: core::cell::Cell]
// cdb-command:dx a,d
// cdb-check:a,d : 42 [Type: alloc::sync::Arc]
// cdb-check: [] [Type: alloc::sync::Arc]
// cdb-check: [Reference count] : 2 [Type: core::sync::atomic::AtomicUsize]
+// cdb-check: [Weak reference count] : 2 [Type: core::sync::atomic::AtomicUsize]
// cdb-command:dx a1,d
// cdb-check:a1,d : 42 [Type: alloc::sync::Arc]
// cdb-check: [] [Type: alloc::sync::Arc]
// cdb-check: [Reference count] : 2 [Type: core::sync::atomic::AtomicUsize]
+// cdb-check: [Weak reference count] : 2 [Type: core::sync::atomic::AtomicUsize]
// cdb-command:dx w2,d
// cdb-check:w2,d : 42 [Type: alloc::sync::Weak]
// cdb-check: [] [Type: alloc::sync::Weak]
+// cdb-check: [Reference count] : 2 [Type: core::sync::atomic::AtomicUsize]
+// cdb-check: [Weak reference count] : 2 [Type: core::sync::atomic::AtomicUsize]
use std::rc::Rc;
use std::sync::Arc;