================
@@ -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

Reply via email to