#![feature(box_syntax)]
#![feature(optin_builtin_traits)]
#![feature(unboxed_closures)]
+#![feature(unsafe_no_drop_flag)]
#![feature(core)]
#![feature(hash)]
#![cfg_attr(all(not(feature = "external_funcs"), not(feature = "external_crate")),
#![feature(box_syntax)]
#![feature(core)]
#![feature(hash)]
+#![feature(slicing_syntax)]
#![feature(staged_api)]
#![feature(unboxed_closures)]
#![feature(unicode)]
-#![feature(unsafe_destructor, slicing_syntax)]
+#![feature(unsafe_destructor)]
+#![feature(unsafe_no_drop_flag)]
#![cfg_attr(test, feature(rand, rustc_private, test))]
#![cfg_attr(test, allow(deprecated))] // rand
#![feature(core)]
#![feature(hash)]
#![feature(int_uint)]
-#![feature(lang_items, unsafe_destructor)]
+#![feature(lang_items)]
#![feature(libc)]
#![feature(linkage, thread_local, asm)]
#![feature(old_impl_check)]
#![feature(staged_api)]
#![feature(unboxed_closures)]
#![feature(unicode)]
+#![feature(unsafe_destructor)]
+#![feature(unsafe_no_drop_flag)]
#![feature(macro_reexport)]
#![cfg_attr(test, feature(test))]
// Allows using #![no_std]
("no_std", "1.0.0", Active),
+
+ // Allows using the unsafe_no_drop_flag attribute (unlikely to
+ // switch to Accepted; see RFC 320)
+ ("unsafe_no_drop_flag", "1.0.0", Active),
];
enum Status {
self.gate_feature("no_std", attr.span,
"no_std is experimental");
}
+
+ if attr.check_name("unsafe_no_drop_flag") {
+ self.gate_feature("unsafe_no_drop_flag", attr.span,
+ "unsafe_no_drop_flag has unstable semantics \
+ and may be removed in the future");
+ }
}
fn visit_pat(&mut self, pattern: &ast::Pat) {
// option. This file may not be copied, modified, or distributed
// except according to those terms.
+#![feature(unsafe_no_drop_flag)]
+
#[unsafe_no_drop_flag]
pub struct ZeroLengthThingWithDestructor;
impl Drop for ZeroLengthThingWithDestructor {
// except according to those terms.
#![feature(unsafe_destructor)]
+#![feature(unsafe_no_drop_flag)]
use std::mem::size_of;
// option. This file may not be copied, modified, or distributed
// except according to those terms.
+#![feature(unsafe_no_drop_flag)]
+
static mut drop_count: uint = 0;
#[unsafe_no_drop_flag]
// option. This file may not be copied, modified, or distributed
// except according to those terms.
+#![feature(unsafe_no_drop_flag)]
+
static mut destructions : int = 3;
pub fn foo() {