From b7e58ce5547805490a60a108b1c5ce8813eb93e9 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Mon, 6 Jan 2014 09:23:24 -0800 Subject: [PATCH] Don't attempt duplicate outputs This ends up causing weird errors like those seen in #11346 Closes #11346 --- src/librustc/driver/session.rs | 4 +++- src/test/run-make/duplicate-output-flavors/Makefile | 4 ++++ src/test/run-make/duplicate-output-flavors/foo.rs | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 src/test/run-make/duplicate-output-flavors/Makefile create mode 100644 src/test/run-make/duplicate-output-flavors/foo.rs diff --git a/src/librustc/driver/session.rs b/src/librustc/driver/session.rs index 4295d14441e..a8a948db4e1 100644 --- a/src/librustc/driver/session.rs +++ b/src/librustc/driver/session.rs @@ -192,7 +192,7 @@ pub enum EntryFnType { EntryNone, } -#[deriving(Eq, Clone)] +#[deriving(Eq, Clone, TotalOrd, TotalEq)] pub enum OutputStyle { OutputExecutable, OutputDylib, @@ -461,6 +461,8 @@ pub fn collect_outputs(session: &Session, if base.len() == 0 { base.push(OutputExecutable); } + base.sort(); + base.dedup(); return base; } diff --git a/src/test/run-make/duplicate-output-flavors/Makefile b/src/test/run-make/duplicate-output-flavors/Makefile new file mode 100644 index 00000000000..a93a7ce8448 --- /dev/null +++ b/src/test/run-make/duplicate-output-flavors/Makefile @@ -0,0 +1,4 @@ +include ../tools.mk + +all: + $(RUSTC) --rlib foo.rs diff --git a/src/test/run-make/duplicate-output-flavors/foo.rs b/src/test/run-make/duplicate-output-flavors/foo.rs new file mode 100644 index 00000000000..3cdacc96ee9 --- /dev/null +++ b/src/test/run-make/duplicate-output-flavors/foo.rs @@ -0,0 +1 @@ +#[crate_type = "rlib"];