[clang] [llvm] [ARM] Add support for Windows SEH (PR #184953)

Trung Nguyen via cfe-commits cfe-commits at lists.llvm.org
Fri Mar 6 04:49:37 PST 2026


================
@@ -1664,7 +1664,8 @@ class TargetInfo : public TransferrableTargetInfo,
   bool isSEHTrySupported() const {
     return getTriple().isOSWindows() &&
            (getTriple().isX86() ||
-            getTriple().getArch() == llvm::Triple::aarch64);
+            getTriple().getArch() == llvm::Triple::aarch64 ||
+            getTriple().isThumb());
----------------
trungnt2910 wrote:

https://github.com/llvm/llvm-project/blob/fb449d017259a6e26df6b37d3d8de7da3db5b544/llvm/include/llvm/TargetParser/Triple.h#L951-L959

They appear to be two different targets. For `armv7-*` targets, `isARM()` returns `false`.

Furthermore, as documented by [Microsoft](https://learn.microsoft.com/en-us/cpp/build/overview-of-arm-abi-conventions?view=msvc-170), 

> The instruction set for Windows on ARM is strictly limited to Thumb-2. All code executed on this platform is expected to start and always remain in Thumb mode.

so we should not support classic ARM here.

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


More information about the cfe-commits mailing list