]> git.proxmox.com Git - rustc.git/blame - src/test/ui/issues/issue-8860.rs
New upstream version 1.49.0+dfsg1
[rustc.git] / src / test / ui / issues / issue-8860.rs
CommitLineData
b7449926 1// run-pass
0bf4aa26 2#![allow(dead_code)]
c34b1796
AL
3
4static mut DROP: isize = 0;
5static mut DROP_S: isize = 0;
6static mut DROP_T: isize = 0;
1a4d82fc
JJ
7
8struct S;
9impl Drop for S {
10 fn drop(&mut self) {
11 unsafe {
12 DROP_S += 1;
13 DROP += 1;
14 }
15 }
16}
17fn f(ref _s: S) {}
18
c34b1796 19struct T { i: isize }
1a4d82fc
JJ
20impl Drop for T {
21 fn drop(&mut self) {
22 unsafe {
23 DROP_T += 1;
24 DROP += 1;
25 }
26 }
27}
28fn g(ref _t: T) {}
29
30fn do_test() {
31 let s = S;
32 f(s);
33 unsafe {
34 assert_eq!(1, DROP);
35 assert_eq!(1, DROP_S);
36 }
37 let t = T { i: 1 };
38 g(t);
39 unsafe { assert_eq!(1, DROP_T); }
40}
41
42fn main() {
43 do_test();
44 unsafe {
45 assert_eq!(2, DROP);
46 assert_eq!(1, DROP_S);
47 assert_eq!(1, DROP_T);
48 }
49}