FixableGadgets are not always associated with variables that is unsafe (warned). For example, they could be associated with variables whose unsafe operations are suppressed or that are not used in any unsafe operation. Such FixableGadgets will not be fixed. Removing these FixableGadget as early as possible could help improve the performance and stability of the analysis.
The variable grouping algorithm introduced in D145739 nearly completes this task.
For a variable that is neither warned about nor reachable from a warned variable, it does not exist in the graph computed by the algorithm.
So this patch simply removes FixableGadgets whose variables are not present in the graph computed for variable grouping.
Let's also skip this part when there are no warning gadgets? Your initial patch was clearing the FixableGadgets list so it was naturally skipped, but now it's active again.