diff --git a/src/librustc_trans/back/write.rs b/src/librustc_trans/back/write.rs index c33d65e3e536..280951e0dc87 100644 --- a/src/librustc_trans/back/write.rs +++ b/src/librustc_trans/back/write.rs @@ -665,7 +665,6 @@ pub fn run_passes(sess: &Session, modules: Vec, metadata_module: ModuleTranslation, allocator_module: Option, - output_types_override: &OutputTypes, crate_output: &OutputFilenames, crate_name: Symbol, @@ -690,6 +689,12 @@ pub fn run_passes(sess: &Session, sess.fatal("can't perform LTO when using multiple codegen units"); } + let output_types_override = if no_integrated_as { + OutputTypes::new(&[(OutputType::Assembly, None)]) + } else { + sess.opts.output_types.clone() + }; + // Sanity check assert!(modules.len() == sess.opts.cg.codegen_units || sess.opts.debugging_opts.incremental.is_some() || diff --git a/src/librustc_trans/base.rs b/src/librustc_trans/base.rs index 65041e60fe39..53fb330e364d 100644 --- a/src/librustc_trans/base.rs +++ b/src/librustc_trans/base.rs @@ -44,7 +44,7 @@ use rustc::dep_graph::AssertDepGraphSafe; use rustc::middle::cstore::LinkMeta; use rustc::hir::map as hir_map; use rustc::util::common::time; -use rustc::session::config::{self, NoDebugInfo, OutputFilenames, OutputType, OutputTypes}; +use rustc::session::config::{self, NoDebugInfo, OutputFilenames, OutputType}; use rustc::session::Session; use rustc_incremental::{self, IncrementalHashesMap}; use abi; @@ -967,7 +967,6 @@ pub fn trans_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, vec![], metadata_module, None, - &output_filenames.outputs, output_filenames, tcx.crate_name(LOCAL_CRATE), @@ -1237,44 +1236,22 @@ pub fn trans_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, link_meta.crate_hash)); // --- - if no_integrated_as { - let output_types = OutputTypes::new(&[(OutputType::Assembly, None)]); - time(sess.time_passes(), - "LLVM passes", - || write::run_passes(sess, - modules, - metadata_module, - allocator_module, - &output_types, - outputs, + time(sess.time_passes(), + "LLVM passes", + || write::run_passes(sess, + modules, + metadata_module, + allocator_module, + outputs, - tcx.crate_name(LOCAL_CRATE), - link_meta, - metadata, - exported_symbols, - no_builtins, - windows_subsystem, - linker_info, - no_integrated_as)) - } else { - time(sess.time_passes(), - "LLVM passes", - || write::run_passes(sess, - modules, - metadata_module, - allocator_module, - &sess.opts.output_types, - outputs, - - tcx.crate_name(LOCAL_CRATE), - link_meta, - metadata, - exported_symbols, - no_builtins, - windows_subsystem, - linker_info, - no_integrated_as)) - } + tcx.crate_name(LOCAL_CRATE), + link_meta, + metadata, + exported_symbols, + no_builtins, + windows_subsystem, + linker_info, + no_integrated_as)) } #[inline(never)] // give this a place in the profiler