[clang] [llvm] [AArch64][SME] Save VG for unwind info when changing streaming-mode (PR #83301)

Eli Friedman via cfe-commits cfe-commits at lists.llvm.org
Sun May 5 13:44:14 PDT 2024


================
@@ -3730,6 +3730,12 @@ def warn_gnu_inline_cplusplus_without_extern : Warning<
   "'gnu_inline' attribute without 'extern' in C++ treated as externally"
   " available, this changed in Clang 10">,
   InGroup<DiagGroup<"gnu-inline-cpp-without-extern">>;
+def warn_sme_streaming_mode_change_no_sve : Warning<
+  "function requires a streaming-mode change, unwinding is not possible without 'sve'">,
+  InGroup<AArch64SMEAttributes>;
----------------
efriedma-quic wrote:

This should probably be an error if it's possible to unwind: it's effectively miscompile.  Both here, and in the backend.  Add a note suggesting marking the function `noexcept`/`__attribute((nothrow))`.

If it isn't possible to unwind, you just end up with slightly inaccurate debug info, which is just annoying; probably not worth warning for that.

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


More information about the cfe-commits mailing list