blob: 9c587ca2839bda2ae069070b16d3f8f1445623e4 [file] [log] [blame]
许杰友 Jieyou Xu (Joe)6e48b962024-02-22 12:10:291//@ compile-flags:-g
Tom Tromeyfb204cb2018-10-12 13:34:142
Michael Woeristerc7f45a92014-07-09 12:46:093// === GDB TESTS ===================================================================================
4
Michael Woerister55a8bd52014-04-24 09:35:485// gdb-command:run
6
7// STACK BY REF
Michael Woerister55a8bd52014-04-24 09:35:488// gdb-command:print *self
Ben Kimockfa0e8582024-08-17 21:31:499// gdb-check:$1 = generic_method_on_generic_struct::Struct<(u32, i32)> {x: (8888, -8888)}
Michael Woerister55a8bd52014-04-24 09:35:4810// gdb-command:print arg1
11// gdb-check:$2 = -1
Michael Woeristerc7f45a92014-07-09 12:46:0912// gdb-command:print arg2
13// gdb-check:$3 = 2
Michael Woerister55a8bd52014-04-24 09:35:4814// gdb-command:continue
15
16// STACK BY VAL
Michael Woerister55a8bd52014-04-24 09:35:4817// gdb-command:print self
Ben Kimockfa0e8582024-08-17 21:31:4918// gdb-check:$4 = generic_method_on_generic_struct::Struct<(u32, i32)> {x: (8888, -8888)}
Michael Woerister55a8bd52014-04-24 09:35:4819// gdb-command:print arg1
20// gdb-check:$5 = -3
21// gdb-command:print arg2
22// gdb-check:$6 = -4
23// gdb-command:continue
24
25// OWNED BY REF
Michael Woerister55a8bd52014-04-24 09:35:4826// gdb-command:print *self
Ben Kimockfa0e8582024-08-17 21:31:4927// gdb-check:$7 = generic_method_on_generic_struct::Struct<f64> {x: 1234.5}
Michael Woerister55a8bd52014-04-24 09:35:4828// gdb-command:print arg1
29// gdb-check:$8 = -5
30// gdb-command:print arg2
31// gdb-check:$9 = -6
32// gdb-command:continue
33
34// OWNED BY VAL
Michael Woerister55a8bd52014-04-24 09:35:4835// gdb-command:print self
Ben Kimockfa0e8582024-08-17 21:31:4936// gdb-check:$10 = generic_method_on_generic_struct::Struct<f64> {x: 1234.5}
Michael Woerister55a8bd52014-04-24 09:35:4837// gdb-command:print arg1
38// gdb-check:$11 = -7
39// gdb-command:print arg2
40// gdb-check:$12 = -8
41// gdb-command:continue
42
43// OWNED MOVED
Michael Woerister55a8bd52014-04-24 09:35:4844// gdb-command:print *self
Ben Kimockfa0e8582024-08-17 21:31:4945// gdb-check:$13 = generic_method_on_generic_struct::Struct<f64> {x: 1234.5}
Michael Woerister55a8bd52014-04-24 09:35:4846// gdb-command:print arg1
47// gdb-check:$14 = -9
48// gdb-command:print arg2
49// gdb-check:$15 = -10.5
50// gdb-command:continue
51
Michael Woeristerc7f45a92014-07-09 12:46:0952
53// === LLDB TESTS ==================================================================================
54
55// lldb-command:run
56
57// STACK BY REF
Markus Reiter96431e42024-03-15 14:05:5758// lldb-command:v *self
Ben Kimockb2dae982024-08-18 21:41:0159// lldb-check:[...] { x = { 0 = 8888 1 = -8888 } }
Markus Reiter96431e42024-03-15 14:05:5760// lldb-command:v arg1
Ben Kimock22ed23d2024-08-18 21:00:3361// lldb-check:[...] -1
Markus Reiter96431e42024-03-15 14:05:5762// lldb-command:v arg2
Ben Kimock22ed23d2024-08-18 21:00:3363// lldb-check:[...] 2
Michael Woeristerc7f45a92014-07-09 12:46:0964// lldb-command:continue
65
66// STACK BY VAL
Markus Reiter96431e42024-03-15 14:05:5767// lldb-command:v self
Ben Kimockb2dae982024-08-18 21:41:0168// lldb-check:[...] { x = { 0 = 8888 1 = -8888 } }
Markus Reiter96431e42024-03-15 14:05:5769// lldb-command:v arg1
Ben Kimock22ed23d2024-08-18 21:00:3370// lldb-check:[...] -3
Markus Reiter96431e42024-03-15 14:05:5771// lldb-command:v arg2
Ben Kimock22ed23d2024-08-18 21:00:3372// lldb-check:[...] -4
Michael Woeristerc7f45a92014-07-09 12:46:0973// lldb-command:continue
74
75// OWNED BY REF
Markus Reiter96431e42024-03-15 14:05:5776// lldb-command:v *self
Ben Kimock22ed23d2024-08-18 21:00:3377// lldb-check:[...] { x = 1234.5 }
Markus Reiter96431e42024-03-15 14:05:5778// lldb-command:v arg1
Ben Kimock22ed23d2024-08-18 21:00:3379// lldb-check:[...] -5
Markus Reiter96431e42024-03-15 14:05:5780// lldb-command:v arg2
Ben Kimock22ed23d2024-08-18 21:00:3381// lldb-check:[...] -6
Michael Woeristerc7f45a92014-07-09 12:46:0982// lldb-command:continue
83
84// OWNED BY VAL
Markus Reiter96431e42024-03-15 14:05:5785// lldb-command:v self
Ben Kimock22ed23d2024-08-18 21:00:3386// lldb-check:[...] { x = 1234.5 }
Markus Reiter96431e42024-03-15 14:05:5787// lldb-command:v arg1
Ben Kimock22ed23d2024-08-18 21:00:3388// lldb-check:[...] -7
Markus Reiter96431e42024-03-15 14:05:5789// lldb-command:v arg2
Ben Kimock22ed23d2024-08-18 21:00:3390// lldb-check:[...] -8
Michael Woeristerc7f45a92014-07-09 12:46:0991// lldb-command:continue
92
93// OWNED MOVED
Markus Reiter96431e42024-03-15 14:05:5794// lldb-command:v *self
Ben Kimock22ed23d2024-08-18 21:00:3395// lldb-check:[...] { x = 1234.5 }
Markus Reiter96431e42024-03-15 14:05:5796// lldb-command:v arg1
Ben Kimock22ed23d2024-08-18 21:00:3397// lldb-check:[...] -9
Markus Reiter96431e42024-03-15 14:05:5798// lldb-command:v arg2
Ben Kimock22ed23d2024-08-18 21:00:3399// lldb-check:[...] -10.5
Michael Woeristerc7f45a92014-07-09 12:46:09100// lldb-command:continue
101
Andrew Paseltiner6fa0ff22015-09-19 20:33:47102#![feature(omit_gdb_pretty_printer_section)]
Michael Woerister91a0e182014-12-03 22:48:18103#![omit_gdb_pretty_printer_section]
Michael Woeristerc7f45a92014-07-09 12:46:09104
Niko Matsakis890ed5c2015-03-30 13:38:27105#[derive(Copy, Clone)]
Michael Woerister55a8bd52014-04-24 09:35:48106struct Struct<T> {
107 x: T
108}
109
110impl<T1> Struct<T1> {
111
Alex Crichton43bfaa42015-03-26 00:06:52112 fn self_by_ref<T2>(&self, arg1: isize, arg2: T2) -> isize {
Michael Woeristerc7f45a92014-07-09 12:46:09113 zzz(); // #break
Michael Woerister55a8bd52014-04-24 09:35:48114 arg1
115 }
116
Alex Crichton43bfaa42015-03-26 00:06:52117 fn self_by_val<T2>(self, arg1: isize, arg2: T2) -> isize {
Michael Woeristerc7f45a92014-07-09 12:46:09118 zzz(); // #break
Michael Woerister55a8bd52014-04-24 09:35:48119 arg1
120 }
121
Alex Crichton43bfaa42015-03-26 00:06:52122 fn self_owned<T2>(self: Box<Struct<T1>>, arg1: isize, arg2: T2) -> isize {
Michael Woeristerc7f45a92014-07-09 12:46:09123 zzz(); // #break
Michael Woerister55a8bd52014-04-24 09:35:48124 arg1
125 }
126}
127
128fn main() {
129 let stack = Struct { x: (8888_u32, -8888_i32) };
Michael Woeristerc7f45a92014-07-09 12:46:09130 let _ = stack.self_by_ref(-1, 2_u16);
Michael Woerister55a8bd52014-04-24 09:35:48131 let _ = stack.self_by_val(-3, -4_i16);
132
est3165500212021-08-25 00:39:40133 let owned: Box<_> = Box::new(Struct { x: 1234.5f64 });
Michael Woerister55a8bd52014-04-24 09:35:48134 let _ = owned.self_by_ref(-5, -6_i32);
135 let _ = owned.self_by_val(-7, -8_i64);
136 let _ = owned.self_owned(-9, -10.5_f32);
137}
138
139fn zzz() {()}