diff options
| author | Oliver Schneider <github35764891676564198441@oli-obk.de> | 2018-05-24 17:05:16 +0200 |
|---|---|---|
| committer | Oliver Schneider <github35764891676564198441@oli-obk.de> | 2018-05-24 17:05:16 +0200 |
| commit | dcbe09e2b57d165f40f6ccebc915c09bbc1f6bd7 (patch) | |
| tree | 0c5f92b2886bc80a0446737b89194f616e00183c | |
| parent | a76bff86e6f4b56b2c3fd1704ce8535ed207dd78 (diff) | |
| download | rust-dcbe09e2b57d165f40f6ccebc915c09bbc1f6bd7.tar.gz rust-dcbe09e2b57d165f40f6ccebc915c09bbc1f6bd7.zip | |
Don't ICE if crate has no valid crate types left
| -rw-r--r-- | src/librustc_codegen_llvm/base.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/issue-50993.rs | 18 | ||||
| -rw-r--r-- | src/test/ui/issue-50993.stderr | 2 |
3 files changed, 21 insertions, 1 deletions
diff --git a/src/librustc_codegen_llvm/base.rs b/src/librustc_codegen_llvm/base.rs index 59d227557ae..8660c0bcc6c 100644 --- a/src/librustc_codegen_llvm/base.rs +++ b/src/librustc_codegen_llvm/base.rs @@ -642,7 +642,7 @@ fn write_metadata<'a, 'gcx>(tcx: TyCtxt<'a, 'gcx, 'gcx>, config::CrateTypeDylib | config::CrateTypeProcMacro => MetadataKind::Compressed, } - }).max().unwrap(); + }).max().unwrap_or(MetadataKind::None); if kind == MetadataKind::None { return (metadata_llcx, diff --git a/src/test/ui/issue-50993.rs b/src/test/ui/issue-50993.rs new file mode 100644 index 00000000000..a6e881b8034 --- /dev/null +++ b/src/test/ui/issue-50993.rs @@ -0,0 +1,18 @@ +// Copyright 2018 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. + +// compile-flags: --crate-type dylib --target thumbv7em-none-eabihf +// compile-pass +// error-pattern: dropping unsupported crate type `dylib` for target `thumbv7em-none-eabihf` + +#![feature(no_core)] + +#![no_std] +#![no_core] \ No newline at end of file diff --git a/src/test/ui/issue-50993.stderr b/src/test/ui/issue-50993.stderr new file mode 100644 index 00000000000..d7b33a22e9c --- /dev/null +++ b/src/test/ui/issue-50993.stderr @@ -0,0 +1,2 @@ +warning: dropping unsupported crate type `dylib` for target `thumbv7em-none-eabihf` + |
