about summary refs log tree commit diff
path: root/src/test/debuginfo
diff options
context:
space:
mode:
authorvarkor <github@varkor.com>2018-09-11 12:41:56 +0100
committervarkor <github@varkor.com>2018-12-11 11:18:19 +0000
commit62b359094f0dcebdb03e4bbc0e4934ce38d8623a (patch)
treeff988a91dfb358e3f050fa33770c47f2201d6cbd /src/test/debuginfo
parent1137d29d5e551e377579c5a601fe7c444057d00c (diff)
Check for uninhabitedness instead of never
Diffstat (limited to 'src/test/debuginfo')
-rw-r--r--src/test/debuginfo/nil-enum.rs47
1 files changed, 8 insertions, 39 deletions
diff --git a/src/test/debuginfo/nil-enum.rs b/src/test/debuginfo/nil-enum.rs
index ab42b2eff99..27e8e9d17e8 100644
--- a/src/test/debuginfo/nil-enum.rs
+++ b/src/test/debuginfo/nil-enum.rs
@@ -1,55 +1,24 @@
-// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// NOTE Instantiating an empty enum is UB. This test may break in the future.
-
-// LLDB can't handle zero-sized values
+// LLDB can't handle zero-sized values.
 // ignore-lldb
 
-
-// Require LLVM with DW_TAG_variant_part and a gdb that can read it.
-// gdb 8.2.0 crashes on this test case, see
-// https://sourceware.org/bugzilla/show_bug.cgi?id=23626
-// This will be fixed in the next release, which will be >= 8.2.1.
-// min-system-llvm-version: 7.0
-// min-gdb-version: 8.2.1
-
 // compile-flags:-g
 // gdb-command:run
 
-// gdb-command:print first
-// gdbr-check:$1 = nil_enum::ANilEnum {<No data fields>}
-
-// gdb-command:print second
-// gdbr-check:$2 = nil_enum::AnotherNilEnum {<No data fields>}
+// gdb-command:print *first
+// gdbg-check:$1 = {<No data fields>}
+// gdbr-check:$1 = <error reading variable>
 
 #![allow(unused_variables)]
 #![feature(omit_gdb_pretty_printer_section)]
 #![feature(maybe_uninit)]
 #![omit_gdb_pretty_printer_section]
 
-use std::mem::MaybeUninit;
-
-enum ANilEnum {}
-enum AnotherNilEnum {}
+enum Void {}
 
-// This test relies on gdbg printing the string "{<No data fields>}" for empty
-// structs (which may change some time)
-// The error from gdbr is expected since nil enums are not supposed to exist.
 fn main() {
-    unsafe {
-        let first: ANilEnum = MaybeUninit::uninitialized().into_inner();
-        let second: AnotherNilEnum = MaybeUninit::uninitialized().into_inner();
+    let first: *const Void = 1 as *const _;
 
-        zzz(); // #break
-    }
+    zzz(); // #break
 }
 
-fn zzz() {()}
+fn zzz() {}