WinEH requires funclet tokens for (nounwind) ObjC++ ARC intrinsics, because they are subject to pre-ISel lowering. That's because they appear as regular function calls for subsequent passes (like WinEHPrepare). Without funclet token they would be consider them implausible instrucitons and marked as unreachable. Affected EH funclets would get truncated silently, which causes unpredictable crashes at runtime.
Thus, when we target WinEH and generate calls to pre-ISel intrinsics from EH funclets, we emit funclet tokens explicitly. My previous patch D124762 implements that.
Now, the inliner has to propagate funclet tokens to such intrinsics, if they get inlined into EH funclets. That's what this patch implements.
The personality check should not be necessary. We check CallSiteEHPad above, and that's enough to imply that the current function uses funclet bundle operands. (Wasm, SEH, C++ EH)