Michael Woerister | a36e537 | 2013-08-15 10:23:54 | [diff] [blame] | 1 | // Copyright 2013 The Rust Project Developers. See the COPYRIGHT |
| 2 | // file at the top-level directory of this distribution and at |
| 3 | // http://rust-lang.org/COPYRIGHT. |
| 4 | // |
| 5 | // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or |
| 6 | // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license |
| 7 | // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your |
| 8 | // option. This file may not be copied, modified, or distributed |
| 9 | // except according to those terms. |
| 10 | |
Young-il Choi | ca55317 | 2013-11-09 07:16:44 | [diff] [blame] | 11 | // xfail-android: FIXME(#10381) |
sh8281.kim | 4e54828 | 2013-11-04 06:53:01 | [diff] [blame] | 12 | |
Alex Crichton | 071ee96 | 2014-02-07 03:57:09 | [diff] [blame^] | 13 | // compile-flags:-g |
Michael Woerister | 93d6328 | 2013-09-06 14:00:08 | [diff] [blame] | 14 | // debugger:rbreak zzz |
Michael Woerister | a36e537 | 2013-08-15 10:23:54 | [diff] [blame] | 15 | // debugger:run |
| 16 | |
| 17 | // STACK BY REF |
| 18 | // debugger:finish |
| 19 | // debugger:print *self |
| 20 | // check:$1 = {100, -100.5} |
| 21 | // debugger:print arg1 |
| 22 | // check:$2 = -1 |
| 23 | // debugger:print arg2 |
| 24 | // check:$3 = -2 |
| 25 | // debugger:continue |
| 26 | |
| 27 | // STACK BY VAL |
| 28 | // debugger:finish |
Michael Woerister | 01fae5f | 2013-12-17 15:54:22 | [diff] [blame] | 29 | // debugger:print self |
| 30 | // check:$4 = {100, -100.5} |
Michael Woerister | a36e537 | 2013-08-15 10:23:54 | [diff] [blame] | 31 | // debugger:print arg1 |
Michael Woerister | 01fae5f | 2013-12-17 15:54:22 | [diff] [blame] | 32 | // check:$5 = -3 |
Michael Woerister | a36e537 | 2013-08-15 10:23:54 | [diff] [blame] | 33 | // debugger:print arg2 |
Michael Woerister | 01fae5f | 2013-12-17 15:54:22 | [diff] [blame] | 34 | // check:$6 = -4 |
Michael Woerister | a36e537 | 2013-08-15 10:23:54 | [diff] [blame] | 35 | // debugger:continue |
| 36 | |
| 37 | // OWNED BY REF |
| 38 | // debugger:finish |
| 39 | // debugger:print *self |
Michael Woerister | 01fae5f | 2013-12-17 15:54:22 | [diff] [blame] | 40 | // check:$7 = {200, -200.5} |
Michael Woerister | a36e537 | 2013-08-15 10:23:54 | [diff] [blame] | 41 | // debugger:print arg1 |
Michael Woerister | 01fae5f | 2013-12-17 15:54:22 | [diff] [blame] | 42 | // check:$8 = -5 |
Michael Woerister | a36e537 | 2013-08-15 10:23:54 | [diff] [blame] | 43 | // debugger:print arg2 |
Michael Woerister | 01fae5f | 2013-12-17 15:54:22 | [diff] [blame] | 44 | // check:$9 = -6 |
Michael Woerister | a36e537 | 2013-08-15 10:23:54 | [diff] [blame] | 45 | // debugger:continue |
| 46 | |
| 47 | // OWNED BY VAL |
| 48 | // debugger:finish |
Michael Woerister | 01fae5f | 2013-12-17 15:54:22 | [diff] [blame] | 49 | // debugger:print self |
| 50 | // check:$10 = {200, -200.5} |
Michael Woerister | a36e537 | 2013-08-15 10:23:54 | [diff] [blame] | 51 | // debugger:print arg1 |
Michael Woerister | 01fae5f | 2013-12-17 15:54:22 | [diff] [blame] | 52 | // check:$11 = -7 |
Michael Woerister | a36e537 | 2013-08-15 10:23:54 | [diff] [blame] | 53 | // debugger:print arg2 |
Michael Woerister | 01fae5f | 2013-12-17 15:54:22 | [diff] [blame] | 54 | // check:$12 = -8 |
Michael Woerister | a36e537 | 2013-08-15 10:23:54 | [diff] [blame] | 55 | // debugger:continue |
| 56 | |
| 57 | // OWNED MOVED |
| 58 | // debugger:finish |
| 59 | // debugger:print *self |
Michael Woerister | 01fae5f | 2013-12-17 15:54:22 | [diff] [blame] | 60 | // check:$13 = {200, -200.5} |
Michael Woerister | a36e537 | 2013-08-15 10:23:54 | [diff] [blame] | 61 | // debugger:print arg1 |
Michael Woerister | 01fae5f | 2013-12-17 15:54:22 | [diff] [blame] | 62 | // check:$14 = -9 |
Michael Woerister | a36e537 | 2013-08-15 10:23:54 | [diff] [blame] | 63 | // debugger:print arg2 |
Michael Woerister | 01fae5f | 2013-12-17 15:54:22 | [diff] [blame] | 64 | // check:$15 = -10 |
Michael Woerister | a36e537 | 2013-08-15 10:23:54 | [diff] [blame] | 65 | // debugger:continue |
| 66 | |
Daniel Micay | c9d4ad0 | 2013-09-26 06:26:09 | [diff] [blame] | 67 | struct TupleStruct(int, f64); |
Michael Woerister | a36e537 | 2013-08-15 10:23:54 | [diff] [blame] | 68 | |
| 69 | impl TupleStruct { |
| 70 | |
| 71 | fn self_by_ref(&self, arg1: int, arg2: int) -> int { |
| 72 | zzz(); |
| 73 | arg1 + arg2 |
| 74 | } |
| 75 | |
| 76 | fn self_by_val(self, arg1: int, arg2: int) -> int { |
| 77 | zzz(); |
| 78 | arg1 + arg2 |
| 79 | } |
| 80 | |
| 81 | fn self_owned(~self, arg1: int, arg2: int) -> int { |
| 82 | zzz(); |
| 83 | arg1 + arg2 |
| 84 | } |
Michael Woerister | a36e537 | 2013-08-15 10:23:54 | [diff] [blame] | 85 | } |
| 86 | |
| 87 | fn main() { |
| 88 | let stack = TupleStruct(100, -100.5); |
| 89 | let _ = stack.self_by_ref(-1, -2); |
| 90 | let _ = stack.self_by_val(-3, -4); |
| 91 | |
| 92 | let owned = ~TupleStruct(200, -200.5); |
| 93 | let _ = owned.self_by_ref(-5, -6); |
| 94 | let _ = owned.self_by_val(-7, -8); |
| 95 | let _ = owned.self_owned(-9, -10); |
Michael Woerister | a36e537 | 2013-08-15 10:23:54 | [diff] [blame] | 96 | } |
| 97 | |
| 98 | fn zzz() {()} |