about summary refs log tree commit diff
path: root/src/test/run-pass-valgrind/cast-enum-with-dtor.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/run-pass-valgrind/cast-enum-with-dtor.rs')
-rw-r--r--src/test/run-pass-valgrind/cast-enum-with-dtor.rs34
1 files changed, 0 insertions, 34 deletions
diff --git a/src/test/run-pass-valgrind/cast-enum-with-dtor.rs b/src/test/run-pass-valgrind/cast-enum-with-dtor.rs
deleted file mode 100644
index f7ef92df8fb..00000000000
--- a/src/test/run-pass-valgrind/cast-enum-with-dtor.rs
+++ /dev/null
@@ -1,34 +0,0 @@
-#![allow(dead_code, cenum_impl_drop_cast)]
-
-// check dtor calling order when casting enums.
-
-use std::sync::atomic;
-use std::sync::atomic::Ordering;
-use std::mem;
-
-enum E {
-    A = 0,
-    B = 1,
-    C = 2
-}
-
-static FLAG: atomic::AtomicUsize = atomic::AtomicUsize::new(0);
-
-impl Drop for E {
-    fn drop(&mut self) {
-        // avoid dtor loop
-        unsafe { mem::forget(mem::replace(self, E::B)) };
-
-        FLAG.store(FLAG.load(Ordering::SeqCst)+1, Ordering::SeqCst);
-    }
-}
-
-fn main() {
-    assert_eq!(FLAG.load(Ordering::SeqCst), 0);
-    {
-        let e = E::C;
-        assert_eq!(e as u32, 2);
-        assert_eq!(FLAG.load(Ordering::SeqCst), 1);
-    }
-    assert_eq!(FLAG.load(Ordering::SeqCst), 1);
-}