diff options
Diffstat (limited to 'tests/ui/codegen')
| -rw-r--r-- | tests/ui/codegen/llvm-miscompile-metadata-invalidation-36023.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/ui/codegen/llvm-miscompile-metadata-invalidation-36023.rs b/tests/ui/codegen/llvm-miscompile-metadata-invalidation-36023.rs new file mode 100644 index 00000000000..efa31a51881 --- /dev/null +++ b/tests/ui/codegen/llvm-miscompile-metadata-invalidation-36023.rs @@ -0,0 +1,25 @@ +// https://github.com/rust-lang/rust/issues/36023 +//@ run-pass +#![allow(unused_variables)] +use std::ops::Deref; + +fn main() { + if env_var("FOOBAR").as_ref().map(Deref::deref).ok() == Some("yes") { + panic!() + } + + let env_home: Result<String, ()> = Ok("foo-bar-baz".to_string()); + let env_home = env_home.as_ref().map(Deref::deref).ok(); + + if env_home == Some("") { panic!() } +} + +#[inline(never)] +fn env_var(s: &str) -> Result<String, VarError> { + Err(VarError::NotPresent) +} + +pub enum VarError { + NotPresent, + NotUnicode(String), +} |
