Skip to content

Commit a1dae4b

Browse files
committed
Make #[used] considered reachable
1 parent 49cc6d1 commit a1dae4b

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

compiler/rustc_passes/src/reachable.rs

+5
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,11 @@ impl CollectPrivateImplItemsVisitor<'_, '_> {
333333
let codegen_attrs = self.tcx.codegen_fn_attrs(def_id);
334334
if codegen_attrs.contains_extern_indicator()
335335
|| codegen_attrs.flags.contains(CodegenFnAttrFlags::RUSTC_STD_INTERNAL_SYMBOL)
336+
// FIXME(nbdd0121): `#[used]` are marked as reachable here so it's picked up by
337+
// `linked_symbols` in cg_ssa. They won't be exported in binary or cdylib due to their
338+
// `SymbolExportLevel::Rust` export level but may end up being exported in dylibs.
339+
|| codegen_attrs.flags.contains(CodegenFnAttrFlags::USED)
340+
|| codegen_attrs.flags.contains(CodegenFnAttrFlags::USED_LINKER)
336341
{
337342
self.worklist.push(def_id);
338343
}

0 commit comments

Comments
 (0)