================
@@ -280,224 +286,87 @@ mlir::LogicalResult CIRGenFunction::emitCXXTryStmt(const
CXXTryStmt &s) {
scopeIP = builder.saveInsertionPoint();
});
+ // Set personality function if not already set
+ auto funcOp = mlir::cast<cir::FuncOp>(curFn);
+ if (!funcOp.getPersonality())
+ funcOp.setPersonality(getPersonalityFn(cgm, EHPersonality::get(*this)));
----------------
xlauko wrote:
This sets Itanium personality uncoditionally, but you dropped `funclet-based
EH` and wasm EH path, or is this gonna be supported later elsewhere?
```suggestion
if (!funcOp.getPersonality())
funcOp.setPersonality(getPersonalityFn(cgm, EHPersonality::get(*this)));
const EHPersonality &personality = EHPersonality::get(*this);
if (personality.usesFuncletPads()) {
cgm.errorNYI("funclet-based EH (Windows SEH/C++ EH)");
return mlir::success();
}
if (personality.isWasmPersonality()) {
cgm.errorNYI("WASM exception handling");
return mlir::success();
}
```
https://github.com/llvm/llvm-project/pull/180857
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits