We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
#[used]
1 parent 49cc6d1 commit a1dae4bCopy full SHA for a1dae4b
compiler/rustc_passes/src/reachable.rs
@@ -333,6 +333,11 @@ impl CollectPrivateImplItemsVisitor<'_, '_> {
333
let codegen_attrs = self.tcx.codegen_fn_attrs(def_id);
334
if codegen_attrs.contains_extern_indicator()
335
|| 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)
341
{
342
self.worklist.push(def_id);
343
}
0 commit comments