aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.rust/simple.rs
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.rust/simple.rs')
-rw-r--r--gdb/testsuite/gdb.rust/simple.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.rust/simple.rs b/gdb/testsuite/gdb.rust/simple.rs
index 6d6395a..32da580 100644
--- a/gdb/testsuite/gdb.rust/simple.rs
+++ b/gdb/testsuite/gdb.rust/simple.rs
@@ -38,6 +38,12 @@ enum MoreComplicated {
Four{this: bool, is: u8, a: char, struct_: u64, variant: u32},
}
+// tests the nonzero optimization, but fields are reversed
+enum NonZeroOptimized {
+ Empty,
+ Value(String),
+}
+
fn diff2(x: i32, y: i32) -> i32 {
x - y
}
@@ -92,6 +98,17 @@ fn main () {
let to1 = &w[..3];
let to2 = &slice[..1];
+ // tests for enum optimizations
+
+ let str_some = Some("hi".to_string());
+ let str_none = None::<String>;
+ let box_some = Some(Box::new(1u8));
+ let box_none = None::<Box<u8>>;
+ let int_some = Some(1u8);
+ let int_none = None::<u8>;
+ let custom_some = NonZeroOptimized::Value("hi".into());
+ let custom_none = NonZeroOptimized::Empty;
+
println!("{}, {}", x.0, x.1); // set breakpoint here
println!("{}", diff2(92, 45));
}