diff options
| author | yukang <moorekang@gmail.com> | 2023-03-17 07:59:08 +0800 |
|---|---|---|
| committer | yukang <moorekang@gmail.com> | 2023-03-17 07:59:08 +0800 |
| commit | c22f154e3fb6eca7dd1e83575564a5ea44d661bc (patch) | |
| tree | 141344a88c9ac6255ac4bc73e149831106d16053 /compiler | |
| parent | 511364e7874dba9649a264100407e4bffe7b5425 (diff) | |
| download | rust-c22f154e3fb6eca7dd1e83575564a5ea44d661bc.tar.gz rust-c22f154e3fb6eca7dd1e83575564a5ea44d661bc.zip | |
Do not ICE for native_lib without name
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_metadata/src/native_libs.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/rustc_metadata/src/native_libs.rs b/compiler/rustc_metadata/src/native_libs.rs index d6f68b2e140..6b6aa78575a 100644 --- a/compiler/rustc_metadata/src/native_libs.rs +++ b/compiler/rustc_metadata/src/native_libs.rs @@ -53,12 +53,13 @@ fn find_bundled_library( sess: &Session, ) -> Option<Symbol> { if let NativeLibKind::Static { bundle: Some(true) | None, whole_archive } = kind + && let Some(name) = name && sess.crate_types().iter().any(|t| matches!(t, &CrateType::Rlib | CrateType::Staticlib)) && (sess.opts.unstable_opts.packed_bundled_libs || has_cfg || whole_archive == Some(true)) { let verbatim = verbatim.unwrap_or(false); let search_paths = &sess.target_filesearch(PathKind::Native).search_path_dirs(); - return find_native_static_library(name.unwrap().as_str(), verbatim, search_paths, sess) + return find_native_static_library(name.as_str(), verbatim, search_paths, sess) .file_name() .and_then(|s| s.to_str()) .map(Symbol::intern); |
