1
Fork 0

Statics used in reachable function's inline asm are reachable

This commit is contained in:
Tomasz Miąsko 2022-11-28 00:00:00 +00:00
parent 8a09420ac4
commit 63915be212
2 changed files with 31 additions and 0 deletions

View file

@ -116,6 +116,17 @@ impl<'tcx> Visitor<'tcx> for ReachableContext<'tcx> {
intravisit::walk_expr(self, expr)
}
fn visit_inline_asm(&mut self, asm: &'tcx hir::InlineAsm<'tcx>, id: hir::HirId) {
for (op, _) in asm.operands {
if let hir::InlineAsmOperand::SymStatic { def_id, .. } = op {
if let Some(def_id) = def_id.as_local() {
self.reachable_symbols.insert(def_id);
}
}
}
intravisit::walk_inline_asm(self, asm, id);
}
}
impl<'tcx> ReachableContext<'tcx> {