]>
Commit | Line | Data |
---|---|---|
1a4d82fc JJ |
1 | // Copyright 2013-2014 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 | ||
85aaf69f | 11 | // ignore-windows |
1a4d82fc JJ |
12 | // min-lldb-version: 310 |
13 | ||
14 | // compile-flags:-g | |
15 | ||
16 | // === GDB TESTS =================================================================================== | |
17 | ||
18 | // gdb-command:run | |
19 | // gdb-command:print empty.length | |
20 | // gdb-check:$1 = 0 | |
21 | ||
22 | // gdb-command:print singleton.length | |
23 | // gdb-check:$2 = 1 | |
c30ab7b3 SL |
24 | // gdbg-command:print *((int64_t[1]*)(singleton.data_ptr)) |
25 | // gdbr-command:print *(singleton.data_ptr as &[i64; 1]) | |
26 | // gdbg-check:$3 = {1} | |
27 | // gdbr-check:$3 = [1] | |
1a4d82fc JJ |
28 | |
29 | // gdb-command:print multiple.length | |
30 | // gdb-check:$4 = 4 | |
c30ab7b3 SL |
31 | // gdbg-command:print *((int64_t[4]*)(multiple.data_ptr)) |
32 | // gdbr-command:print *(multiple.data_ptr as &[i64; 4]) | |
33 | // gdbg-check:$5 = {2, 3, 4, 5} | |
34 | // gdbr-check:$5 = [2, 3, 4, 5] | |
1a4d82fc JJ |
35 | |
36 | // gdb-command:print slice_of_slice.length | |
37 | // gdb-check:$6 = 2 | |
c30ab7b3 SL |
38 | // gdbg-command:print *((int64_t[2]*)(slice_of_slice.data_ptr)) |
39 | // gdbr-command:print *(slice_of_slice.data_ptr as &[i64; 2]) | |
40 | // gdbg-check:$7 = {3, 4} | |
41 | // gdbr-check:$7 = [3, 4] | |
1a4d82fc JJ |
42 | |
43 | // gdb-command:print padded_tuple.length | |
44 | // gdb-check:$8 = 2 | |
45 | // gdb-command:print padded_tuple.data_ptr[0] | |
c30ab7b3 SL |
46 | // gdbg-check:$9 = {__0 = 6, __1 = 7} |
47 | // gdbr-check:$9 = (6, 7) | |
1a4d82fc | 48 | // gdb-command:print padded_tuple.data_ptr[1] |
c30ab7b3 SL |
49 | // gdbg-check:$10 = {__0 = 8, __1 = 9} |
50 | // gdbr-check:$10 = (8, 9) | |
1a4d82fc JJ |
51 | |
52 | // gdb-command:print padded_struct.length | |
53 | // gdb-check:$11 = 2 | |
54 | // gdb-command:print padded_struct.data_ptr[0] | |
c30ab7b3 SL |
55 | // gdbg-check:$12 = {x = 10, y = 11, z = 12} |
56 | // gdbr-check:$12 = vec_slices::AStruct {x: 10, y: 11, z: 12} | |
1a4d82fc | 57 | // gdb-command:print padded_struct.data_ptr[1] |
c30ab7b3 SL |
58 | // gdbg-check:$13 = {x = 13, y = 14, z = 15} |
59 | // gdbr-check:$13 = vec_slices::AStruct {x: 13, y: 14, z: 15} | |
1a4d82fc | 60 | |
c30ab7b3 SL |
61 | // gdbg-command:print 'vec_slices::MUT_VECT_SLICE'.length |
62 | // gdbr-command:print MUT_VECT_SLICE.length | |
1a4d82fc | 63 | // gdb-check:$14 = 2 |
c30ab7b3 SL |
64 | // gdbg-command:print *((int64_t[2]*)('vec_slices::MUT_VECT_SLICE'.data_ptr)) |
65 | // gdbr-command:print *(MUT_VECT_SLICE.data_ptr as &[i64; 2]) | |
66 | // gdbg-check:$15 = {64, 65} | |
67 | // gdbr-check:$15 = [64, 65] | |
1a4d82fc | 68 | |
3157f602 XL |
69 | //gdb-command:print mut_slice.length |
70 | //gdb-check:$16 = 5 | |
c30ab7b3 SL |
71 | //gdbg-command:print *((int64_t[5]*)(mut_slice.data_ptr)) |
72 | //gdbr-command:print *(mut_slice.data_ptr as &[i64; 5]) | |
73 | //gdbg-check:$17 = {1, 2, 3, 4, 5} | |
74 | //gdbr-check:$17 = [1, 2, 3, 4, 5] | |
3157f602 | 75 | |
1a4d82fc JJ |
76 | |
77 | // === LLDB TESTS ================================================================================== | |
78 | ||
79 | // lldb-command:run | |
80 | ||
81 | // lldb-command:print empty | |
82 | // lldb-check:[...]$0 = &[] | |
83 | ||
84 | // lldb-command:print singleton | |
85 | // lldb-check:[...]$1 = &[1] | |
86 | ||
87 | // lldb-command:print multiple | |
88 | // lldb-check:[...]$2 = &[2, 3, 4, 5] | |
89 | ||
90 | // lldb-command:print slice_of_slice | |
91 | // lldb-check:[...]$3 = &[3, 4] | |
92 | ||
93 | // lldb-command:print padded_tuple | |
94 | // lldb-check:[...]$4 = &[(6, 7), (8, 9)] | |
95 | ||
96 | // lldb-command:print padded_struct | |
97 | // lldb-check:[...]$5 = &[AStruct { x: 10, y: 11, z: 12 }, AStruct { x: 13, y: 14, z: 15 }] | |
98 | ||
d9579d0f | 99 | #![allow(dead_code, unused_variables)] |
b039eaaf | 100 | #![feature(omit_gdb_pretty_printer_section)] |
1a4d82fc JJ |
101 | #![omit_gdb_pretty_printer_section] |
102 | ||
103 | struct AStruct { | |
104 | x: i16, | |
105 | y: i32, | |
106 | z: i16 | |
107 | } | |
108 | ||
109 | static VECT_SLICE: &'static [i64] = &[64, 65]; | |
110 | static mut MUT_VECT_SLICE: &'static [i64] = &[32]; | |
111 | ||
112 | fn main() { | |
113 | let empty: &[i64] = &[]; | |
114 | let singleton: &[i64] = &[1]; | |
115 | let multiple: &[i64] = &[2, 3, 4, 5]; | |
116 | let slice_of_slice = &multiple[1..3]; | |
117 | ||
118 | let padded_tuple: &[(i32, i16)] = &[(6, 7), (8, 9)]; | |
119 | ||
120 | let padded_struct: &[AStruct] = &[ | |
121 | AStruct { x: 10, y: 11, z: 12 }, | |
122 | AStruct { x: 13, y: 14, z: 15 } | |
123 | ]; | |
124 | ||
125 | unsafe { | |
126 | MUT_VECT_SLICE = VECT_SLICE; | |
127 | } | |
128 | ||
3157f602 XL |
129 | let mut_slice: &mut [i64] = &mut [1, 2, 3, 4, 5]; |
130 | ||
1a4d82fc JJ |
131 | zzz(); // #break |
132 | } | |
133 | ||
134 | fn zzz() {()} |