about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorCorey Farwell <coreyf@rwell.org>2017-04-05 12:44:40 -0400
committerGitHub <noreply@github.com>2017-04-05 12:44:40 -0400
commit97a1f4b1f4e2acc25f939ea08ff634f70e1ab58d (patch)
treef1781c8eee2c19a80fc40159ebe7c9de37817f31 /src
parentd0d05f5dd3ca54bf7cfacd34e221635a7593db77 (diff)
parent201b1a9032df63b40c1024cc9defd4a4b66cd73a (diff)
downloadrust-97a1f4b1f4e2acc25f939ea08ff634f70e1ab58d.tar.gz
rust-97a1f4b1f4e2acc25f939ea08ff634f70e1ab58d.zip
Rollup merge of #41085 - nagisa:fix-output-properg, r=alexcrichton
Properly adjust filenames when multiple emissions

Fixes #40993

Should backport just fine to beta but not sure if we want to do this since this is quite old stable regression.
Diffstat (limited to 'src')
-rw-r--r--src/librustc_driver/driver.rs7
-rw-r--r--src/test/run-make/multiple-emits/Makefile7
-rw-r--r--src/test/run-make/multiple-emits/foo.rs11
3 files changed, 21 insertions, 4 deletions
diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs
index 977382b33ad..96eb5dd602f 100644
--- a/src/librustc_driver/driver.rs
+++ b/src/librustc_driver/driver.rs
@@ -1358,10 +1358,9 @@ pub fn build_output_filenames(input: &Input,
                                            .values()
                                            .filter(|a| a.is_none())
                                            .count();
-            let ofile = if unnamed_output_types > 1 &&
-                            sess.opts.output_types.contains_key(&OutputType::Exe) {
-                sess.warn("ignoring specified output filename for 'link' output because multiple \
-                           outputs were requested");
+            let ofile = if unnamed_output_types > 1 {
+                sess.warn("due to multiple output types requested, the explicitly specified \
+                           output file name will be adapted for each output type");
                 None
             } else {
                 Some(out_file.clone())
diff --git a/src/test/run-make/multiple-emits/Makefile b/src/test/run-make/multiple-emits/Makefile
new file mode 100644
index 00000000000..e126422835c
--- /dev/null
+++ b/src/test/run-make/multiple-emits/Makefile
@@ -0,0 +1,7 @@
+-include ../tools.mk
+
+all:
+	$(RUSTC) foo.rs --emit=asm,llvm-ir -o $(TMPDIR)/out 2>&1
+	rm $(TMPDIR)/out.ll $(TMPDIR)/out.s
+	$(RUSTC) foo.rs --emit=asm,llvm-ir -o $(TMPDIR)/out2.ext 2>&1
+	rm $(TMPDIR)/out2.ll $(TMPDIR)/out2.s
diff --git a/src/test/run-make/multiple-emits/foo.rs b/src/test/run-make/multiple-emits/foo.rs
new file mode 100644
index 00000000000..8ae3d072362
--- /dev/null
+++ b/src/test/run-make/multiple-emits/foo.rs
@@ -0,0 +1,11 @@
+// Copyright 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.
+
+fn main() {}