// option. This file may not be copied, modified, or distributed
// except according to those terms.
-// ignore-fast
-
-extern mod green;
-
static mut DROP: int = 0i;
static mut DROP_S: int = 0i;
static mut DROP_T: int = 0i;
-#[start]
-fn start(argc: int, argv: **u8) -> int {
- let ret = green::start(argc, argv, main);
- unsafe {
- assert_eq!(2, DROP);
- assert_eq!(1, DROP_S);
- assert_eq!(1, DROP_T);
- }
- ret
-}
-
struct S;
impl Drop for S {
fn drop(&mut self) {
}
fn g(ref _t: T) {}
-fn main() {
+fn do_test() {
let s = S;
f(s);
unsafe {
g(t);
unsafe { assert_eq!(1, DROP_T); }
}
+
+fn main() {
+ do_test();
+ unsafe {
+ assert_eq!(2, DROP);
+ assert_eq!(1, DROP_S);
+ assert_eq!(1, DROP_T);
+ }
+}