[clang] [llvm] [SystemZ] Add support for __builtin_setjmp and __builtin_longjmp (PR #116642)

Eli Friedman via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 20 11:54:06 PST 2024


================
@@ -4619,6 +4619,12 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID,
     // Buffer is a void**.
     Address Buf = EmitPointerWithAlignment(E->getArg(0));
 
+    if (getTarget().getTriple().getArch() == llvm::Triple::systemz) {
+      // Call LLVM's EH setjmp, which is lightweight.
----------------
efriedma-quic wrote:

That makes sense.  I don't think there's any benefit to having the frontend to generate explicit stores.  I just want to make sure whatever solution we choose, it doesn't silently break code generated by other frontends (or older versions of clang).

https://github.com/llvm/llvm-project/pull/116642


More information about the cfe-commits mailing list