================
@@ -1655,6 +1655,15 @@ void CodeGenFunction::GenerateCode(GlobalDecl GD,
llvm::Function *Fn,
PGO->verifyCounterMap();
+ if (CurCodeDecl->hasAttr<PersonalityAttr>()) {
+ StringRef Identifier =
+ CurCodeDecl->getAttr<PersonalityAttr>()->getRoutine()->getName();
+ llvm::FunctionCallee PersonalityRoutine =
+ CGM.CreateRuntimeFunction(llvm::FunctionType::get(CGM.Int32Ty, true),
----------------
compnerd wrote:
Ah, that is fair. I don't think that it matters on most targets. The only
target that comes to mind where this matters is WASM, where I don't know if
this would be as useful. In fact, I'm not sure what happens there right now -
we treat all of the personality routines as the type that I'm using here - `int
(*)(...);`.
The information is only used to generate the `eh_frame` or SEH entry, which
needs a nominal reference to the personality routine rather than forming an
actual call. The calls are runtime only done through the indirect function call.
https://github.com/llvm/llvm-project/pull/185225
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits