Generally, I’d prefer if we didn’t keep designing new features that assume the programmer knows what they’re doing. Personally, I had been considering reworking LLVM’s Windows EH representation to eliminate the catchswith instruction, which just exists to multiplex invoke unwind edges to multiple catch blocks. Instead, we’d use callbr, and I had been assuming it would have the normal behavior of producing the return value only along the normal path.
Do you think landingpad offers alternative inspiration for how to handle this? i.e. you could have a special EHPad-like instruction (must be first non-PHI instruction) that produces a value along abnormal paths.