Write to stdout if - is given as output file
If `-o -` or `--emit KIND=-` is provided, output will be written to stdout instead. Binary output (`obj`, `llvm-bc`, `link` and `metadata`) being written this way will result in an error unless stdout is not a tty. Multiple output types going to stdout will trigger an error too, as they will all be mixded together.
This commit is contained in:
@@ -11,7 +11,7 @@ use rustc_session::config::InstrumentXRay;
|
||||
use rustc_session::config::TraitSolver;
|
||||
use rustc_session::config::{build_configuration, build_session_options, to_crate_config};
|
||||
use rustc_session::config::{
|
||||
BranchProtection, Externs, OomStrategy, OutputType, OutputTypes, PAuthKey, PacRet,
|
||||
BranchProtection, Externs, OomStrategy, OutFileName, OutputType, OutputTypes, PAuthKey, PacRet,
|
||||
ProcMacroExecutionStrategy, SymbolManglingVersion, WasiExecModel,
|
||||
};
|
||||
use rustc_session::config::{CFGuard, ExternEntry, LinkerPluginLto, LtoCli, SwitchWithOptPath};
|
||||
@@ -167,8 +167,14 @@ fn test_output_types_tracking_hash_different_paths() {
|
||||
let mut v2 = Options::default();
|
||||
let mut v3 = Options::default();
|
||||
|
||||
v1.output_types = OutputTypes::new(&[(OutputType::Exe, Some(PathBuf::from("./some/thing")))]);
|
||||
v2.output_types = OutputTypes::new(&[(OutputType::Exe, Some(PathBuf::from("/some/thing")))]);
|
||||
v1.output_types = OutputTypes::new(&[(
|
||||
OutputType::Exe,
|
||||
Some(OutFileName::Real(PathBuf::from("./some/thing"))),
|
||||
)]);
|
||||
v2.output_types = OutputTypes::new(&[(
|
||||
OutputType::Exe,
|
||||
Some(OutFileName::Real(PathBuf::from("/some/thing"))),
|
||||
)]);
|
||||
v3.output_types = OutputTypes::new(&[(OutputType::Exe, None)]);
|
||||
|
||||
assert_non_crate_hash_different(&v1, &v2);
|
||||
@@ -182,13 +188,13 @@ fn test_output_types_tracking_hash_different_construction_order() {
|
||||
let mut v2 = Options::default();
|
||||
|
||||
v1.output_types = OutputTypes::new(&[
|
||||
(OutputType::Exe, Some(PathBuf::from("./some/thing"))),
|
||||
(OutputType::Bitcode, Some(PathBuf::from("./some/thing.bc"))),
|
||||
(OutputType::Exe, Some(OutFileName::Real(PathBuf::from("./some/thing")))),
|
||||
(OutputType::Bitcode, Some(OutFileName::Real(PathBuf::from("./some/thing.bc")))),
|
||||
]);
|
||||
|
||||
v2.output_types = OutputTypes::new(&[
|
||||
(OutputType::Bitcode, Some(PathBuf::from("./some/thing.bc"))),
|
||||
(OutputType::Exe, Some(PathBuf::from("./some/thing"))),
|
||||
(OutputType::Bitcode, Some(OutFileName::Real(PathBuf::from("./some/thing.bc")))),
|
||||
(OutputType::Exe, Some(OutFileName::Real(PathBuf::from("./some/thing")))),
|
||||
]);
|
||||
|
||||
assert_same_hash(&v1, &v2);
|
||||
|
||||
Reference in New Issue
Block a user