about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOliver Schneider <github35764891676564198441@oli-obk.de>2018-05-24 17:05:16 +0200
committerOliver Schneider <github35764891676564198441@oli-obk.de>2018-05-24 17:05:16 +0200
commitdcbe09e2b57d165f40f6ccebc915c09bbc1f6bd7 (patch)
tree0c5f92b2886bc80a0446737b89194f616e00183c
parenta76bff86e6f4b56b2c3fd1704ce8535ed207dd78 (diff)
downloadrust-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.rs2
-rw-r--r--src/test/ui/issue-50993.rs18
-rw-r--r--src/test/ui/issue-50993.stderr2
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`
+