1
Fork 0

Mark #[rustc_std_internal_symbol] as extern indicator

It currently implies #[no_mangle] which is alread an extern indicator,
but this will change in a future commit.
This commit is contained in:
bjorn3 2023-12-02 13:50:44 +00:00
parent 98b9d0232f
commit 60b785fc8d
2 changed files with 2 additions and 4 deletions

View file

@ -184,9 +184,7 @@ impl<'tcx> ReachableContext<'tcx> {
CodegenFnAttrs::EMPTY
};
let is_extern = codegen_attrs.contains_extern_indicator();
let std_internal =
codegen_attrs.flags.contains(CodegenFnAttrFlags::RUSTC_STD_INTERNAL_SYMBOL);
if is_extern || std_internal {
if is_extern {
self.reachable_symbols.insert(search_item);
}
} else {
@ -426,7 +424,6 @@ fn has_custom_linkage(tcx: TyCtxt<'_>, def_id: LocalDefId) -> bool {
}
let codegen_attrs = tcx.codegen_fn_attrs(def_id);
codegen_attrs.contains_extern_indicator()
|| codegen_attrs.flags.contains(CodegenFnAttrFlags::RUSTC_STD_INTERNAL_SYMBOL)
// FIXME(nbdd0121): `#[used]` are marked as reachable here so it's picked up by
// `linked_symbols` in cg_ssa. They won't be exported in binary or cdylib due to their
// `SymbolExportLevel::Rust` export level but may end up being exported in dylibs.