Skip parameter attribute deduction for MIR with spread_arg

When a MIR argument is spread at ABI level, deduced attributes are
potentially misapplied, since a spread argument can correspond to zero
or more arguments at ABI level.

Disable deduction for MIR using spread argument for the time being.
This commit is contained in:
Tomasz Miąsko
2025-10-26 09:18:41 +01:00
parent bc1d7273df
commit e9252a42f5
2 changed files with 14 additions and 1 deletions

View File

@@ -195,6 +195,11 @@ pub(super) fn deduced_param_attrs<'tcx>(
// Grab the optimized MIR. Analyze it to determine which arguments have been mutated.
let body: &Body<'tcx> = tcx.optimized_mir(def_id);
// Arguments spread at ABI level are currently unsupported.
if body.spread_arg.is_some() {
return &[];
}
let mut deduce = DeduceParamAttrs::new(body);
deduce.visit_body(body);
tracing::trace!(?deduce.usage);