about summary refs log tree commit diff
path: root/compiler/rustc_interface/src
diff options
context:
space:
mode:
authorJakub Beránek <berykubik@gmail.com>2022-04-02 16:50:08 +0200
committerJakub Beránek <berykubik@gmail.com>2022-04-02 16:50:08 +0200
commite0d42266770dcdb3578a2ea7e14ee91967156a2e (patch)
tree8be4cc0839f644789c21bf27a4d2d90f36cb97ba /compiler/rustc_interface/src
parent07a461ad52b8485b184397b453b5436c70f9f460 (diff)
downloadrust-e0d42266770dcdb3578a2ea7e14ee91967156a2e.tar.gz
rust-e0d42266770dcdb3578a2ea7e14ee91967156a2e.zip
Include a header in .rlink files to provide nicer error messages when a wrong file is parsed as .rlink
Diffstat (limited to 'compiler/rustc_interface/src')
-rw-r--r--compiler/rustc_interface/src/queries.rs6
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/rustc_interface/src/queries.rs b/compiler/rustc_interface/src/queries.rs
index 6373f4e9af1..930715bba26 100644
--- a/compiler/rustc_interface/src/queries.rs
+++ b/compiler/rustc_interface/src/queries.rs
@@ -18,6 +18,7 @@ use rustc_span::symbol::sym;
 use std::any::Any;
 use std::cell::{Ref, RefCell, RefMut};
 use std::rc::Rc;
+use rustc_codegen_ssa::CodegenResults;
 
 /// Represent the result of a query.
 ///
@@ -360,10 +361,9 @@ impl Linker {
         }
 
         if sess.opts.debugging_opts.no_link {
-            let mut encoder = rustc_serialize::opaque::Encoder::new(Vec::new());
-            rustc_serialize::Encodable::encode(&codegen_results, &mut encoder).unwrap();
+            let encoded = CodegenResults::serialize_rlink(&codegen_results);
             let rlink_file = self.prepare_outputs.with_extension(config::RLINK_EXT);
-            std::fs::write(&rlink_file, encoder.into_inner()).map_err(|err| {
+            std::fs::write(&rlink_file, encoded).map_err(|err| {
                 sess.fatal(&format!("failed to write file {}: {}", rlink_file.display(), err));
             })?;
             return Ok(());