diff options
author | Tom Tromey <tom@tromey.com> | 2016-04-26 19:38:43 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2016-05-17 12:02:01 -0600 |
commit | 67218854b1987d89593ccaf5feaf5b29b1b976f2 (patch) | |
tree | 8137e1713d27a507dfc57015308f44166543ffc6 /gdb/testsuite/gdb.rust/modules.rs | |
parent | c44af4ebc000f606d16b42224cba2cfe80391d5c (diff) | |
download | gdb-67218854b1987d89593ccaf5feaf5b29b1b976f2.zip gdb-67218854b1987d89593ccaf5feaf5b29b1b976f2.tar.gz gdb-67218854b1987d89593ccaf5feaf5b29b1b976f2.tar.bz2 |
Update gdb test suite for Rust
This updates the gdb test suite for Rust.
2016-05-17 Tom Tromey <tom@tromey.com>
Manish Goregaokar <manishsmail@gmail.com>
* lib/rust-support.exp: New file.
* lib/gdb.exp (skip_rust_tests): New proc.
(build_executable_from_specs): Handle rust.
* lib/future.exp (gdb_find_rustc): New proc.
(gdb_default_target_compile): Handle rust.
* gdb.rust/expr.exp: New file.
* gdb.rust/generics.exp: New file.
* gdb.rust/generics.rs: New file.
* gdb.rust/methods.exp: New file.
* gdb.rust/methods.rs: New file.
* gdb.rust/modules.exp: New file.
* gdb.rust/modules.rs: New file.
* gdb.rust/simple.exp: New file.
* gdb.rust/simple.rs: New file.
Diffstat (limited to 'gdb/testsuite/gdb.rust/modules.rs')
-rw-r--r-- | gdb/testsuite/gdb.rust/modules.rs | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.rust/modules.rs b/gdb/testsuite/gdb.rust/modules.rs new file mode 100644 index 0000000..35829b8 --- /dev/null +++ b/gdb/testsuite/gdb.rust/modules.rs @@ -0,0 +1,90 @@ +// Copyright (C) 2016 Free Software Foundation, Inc. + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. + +#![allow(dead_code)] +#![allow(unused_variables)] +#![allow(unused_assignments)] + +fn f2() { + println!("::f2"); +} + +pub struct Generic<T>(T); + +pub struct Type; + +pub mod mod1 { + pub struct Type(usize, isize); + + pub mod inner { + pub struct Type(f64); + + pub mod innest { + pub struct Type {pub x : u32} + + fn wrap<T> (x: T) -> ::Generic<::Generic<T>> { + ::Generic(::Generic(x)) + } + + pub fn f1 () { + struct Type(i8); + + let x: u8 = 0; + + let ct = ::Type; + let ctg = wrap(ct); + let m1t = ::mod1::Type(23, 97); + let m1tg = wrap(m1t); + let innert = super::Type(10101.5); + let innertg = wrap(innert); + let innestt = self::Type{x: 0xfff}; + let innesttg = wrap(innestt); + let f1t = Type(9); + let f1tg = wrap(f1t); + + let f2 = || println!("lambda f2"); + + f2(); // set breakpoint here + f3(); + self::f2(); + super::f2(); + self::super::f2(); + self::super::super::f2(); + super::super::f2(); + ::f2(); + } + + pub fn f2() { + println!("mod1::inner::innest::f2"); + } + + pub fn f3() { + println!("mod1::inner::innest::f3"); + } + } + + pub fn f2() { + println!("mod1::inner::f2"); + } + } + + pub fn f2() { + println!("mod1::f2"); + } +} + +fn main () { + mod1::inner::innest::f1(); +} |