diff options
| author | varkor <github@varkor.com> | 2018-09-11 12:41:56 +0100 |
|---|---|---|
| committer | varkor <github@varkor.com> | 2018-12-11 11:18:19 +0000 |
| commit | 62b359094f0dcebdb03e4bbc0e4934ce38d8623a (patch) | |
| tree | ff988a91dfb358e3f050fa33770c47f2201d6cbd /src/test/debuginfo | |
| parent | 1137d29d5e551e377579c5a601fe7c444057d00c (diff) | |
Check for uninhabitedness instead of never
Diffstat (limited to 'src/test/debuginfo')
| -rw-r--r-- | src/test/debuginfo/nil-enum.rs | 47 |
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() {} |
