Skip to content

Commit 33ef16f

Browse files
committed
Port UnknownArchiveKind
1 parent c01546f commit 33ef16f

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

compiler/rustc_codegen_llvm/src/back/archive.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use object::read::macho::FatArch;
1414
use crate::common;
1515
use crate::errors::{
1616
ArchiveBuildFailure, DlltoolFailImportLibrary, ErrorCallingDllTool, ErrorCreatingImportLibrary,
17-
ErrorWritingDEFFile,
17+
ErrorWritingDEFFile, UnknownArchiveKind,
1818
};
1919
use crate::llvm::archive_ro::{ArchiveRO, Child};
2020
use crate::llvm::{self, ArchiveKind, LLVMMachineType, LLVMRustCOFFShortExport};
@@ -312,9 +312,10 @@ impl ArchiveBuilderBuilder for LlvmArchiveBuilderBuilder {
312312
impl<'a> LlvmArchiveBuilder<'a> {
313313
fn build_with_llvm(&mut self, output: &Path) -> io::Result<bool> {
314314
let kind = &*self.sess.target.archive_format;
315-
let kind = kind.parse::<ArchiveKind>().map_err(|_| kind).unwrap_or_else(|kind| {
316-
self.sess.fatal(&format!("Don't know how to build archive of type: {}", kind))
317-
});
315+
let kind = kind
316+
.parse::<ArchiveKind>()
317+
.map_err(|_| kind)
318+
.unwrap_or_else(|kind| self.sess.emit_fatal(UnknownArchiveKind { kind: kind }));
318319

319320
let mut additions = mem::take(&mut self.additions);
320321
let mut strings = Vec::new();

compiler/rustc_codegen_llvm/src/errors.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,3 +111,9 @@ pub(crate) struct DlltoolFailImportLibrary<'a> {
111111
pub stdout: Cow<'a, str>,
112112
pub stderr: Cow<'a, str>,
113113
}
114+
115+
#[derive(SessionDiagnostic)]
116+
#[diag(codegen_llvm::unknown_archive_kind)]
117+
pub(crate) struct UnknownArchiveKind<'a> {
118+
pub kind: &'a str,
119+
}

compiler/rustc_error_messages/locales/en-US/codegen_llvm.ftl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,6 @@ codegen_llvm_error_calling_dlltool =
4848
4949
codegen_llvm_dlltool_fail_import_library =
5050
Dlltool could not create import library: {$stdout}\n{$stderr}
51+
52+
codegen_llvm_unknown_archive_kind =
53+
Don't know how to build archive of type: {$kind}

0 commit comments

Comments
 (0)