]> git.lizzy.rs Git - rust.git/commitdiff
add test with an Rc cycle to create a memleak
authorOliver Schneider <git-spam-no-reply9815368754983@oli-obk.de>
Wed, 15 Feb 2017 15:38:27 +0000 (16:38 +0100)
committerOliver Schneider <git-spam-no-reply9815368754983@oli-obk.de>
Fri, 24 Feb 2017 09:41:15 +0000 (10:41 +0100)
tests/compile-fail/memleak_rc.rs [new file with mode: 0644]

diff --git a/tests/compile-fail/memleak_rc.rs b/tests/compile-fail/memleak_rc.rs
new file mode 100644 (file)
index 0000000..b2bc672
--- /dev/null
@@ -0,0 +1,12 @@
+//error-pattern: the evaluated program leaked memory
+
+use std::rc::Rc;
+use std::cell::RefCell;
+
+struct Dummy(Rc<RefCell<Option<Dummy>>>);
+
+fn main() {
+    let x = Dummy(Rc::new(RefCell::new(None)));
+    let y = Dummy(x.0.clone());
+    *x.0.borrow_mut() = Some(y);
+}