[llvm] [X86] Make WinEH crash test reliable under ASan (PR #212820)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 29 09:49:09 PDT 2026
https://github.com/compilersutra created https://github.com/llvm/llvm-project/pull/212820
None
>From d6e3bbc01336a285c338c75a56a91e77da99c9a5 Mon Sep 17 00:00:00 2001
From: compilersutra <osc at compilersutra.com>
Date: Wed, 29 Jul 2026 22:12:59 +0530
Subject: [PATCH] [X86] Make WinEH crash test reliable under ASan
---
.../CodeGen/X86/win64-eh-unwindv2-errors.mir | 56 +++++++++----------
1 file changed, 28 insertions(+), 28 deletions(-)
diff --git a/llvm/test/CodeGen/X86/win64-eh-unwindv2-errors.mir b/llvm/test/CodeGen/X86/win64-eh-unwindv2-errors.mir
index c8eee80bd7265..32023d1d85f25 100644
--- a/llvm/test/CodeGen/X86/win64-eh-unwindv2-errors.mir
+++ b/llvm/test/CodeGen/X86/win64-eh-unwindv2-errors.mir
@@ -6,10 +6,10 @@
# BESTEFFORT-NOT: SEH_UnwindV2Start
;--- alloc_no_dealloc.mir
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/alloc_no_dealloc.mir -run-pass=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=ALLOC-NO-DEALLOC
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/alloc_no_dealloc.mir -passes=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=ALLOC-NO-DEALLOC
# RUN: llc -mtriple=x86_64-pc-windows-msvc -o - %t/alloc_no_dealloc.mir \
@@ -42,10 +42,10 @@ body: |
...
;--- missed_push.mir
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - %t/missed_push.mir \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - %t/missed_push.mir \
# RUN: -run-pass=x86-wineh-unwindv2 2>&1 | FileCheck %s \
# RUN: --check-prefix=MISSED-PUSH
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - %t/missed_push.mir \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - %t/missed_push.mir \
# RUN: -passes=x86-wineh-unwindv2 2>&1 | FileCheck %s \
# RUN: --check-prefix=MISSED-PUSH
# RUN: llc -mtriple=x86_64-pc-windows-msvc -o - %t/missed_push.mir \
@@ -81,10 +81,10 @@ body: |
...
;--- dealloc_no_alloc.mir
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/dealloc_no_alloc.mir -run-pass=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=DEALLOC-NO-ALLOC
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/dealloc_no_alloc.mir -passes=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=DEALLOC-NO-ALLOC
# RUN: llc -mtriple=x86_64-pc-windows-msvc -o - %t/dealloc_no_alloc.mir \
@@ -116,10 +116,10 @@ body: |
...
;--- dealloc_after_epilog.mir
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/dealloc_after_epilog.mir -run-pass=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=DEALLOC-AFTER-EPILOG
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/dealloc_after_epilog.mir -passes=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=DEALLOC-AFTER-EPILOG
# RUN: llc -mtriple=x86_64-pc-windows-msvc -o - \
@@ -153,10 +153,10 @@ body: |
...
;--- pop_before_dealloc.mir
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/pop_before_dealloc.mir -run-pass=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=POP-BEFORE-DEALLOC
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/pop_before_dealloc.mir -passes=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=POP-BEFORE-DEALLOC
# RUN: llc -mtriple=x86_64-pc-windows-msvc -o - %t/pop_before_dealloc.mir \
@@ -193,10 +193,10 @@ body: |
...
;--- mov_no_setframe.mir
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/mov_no_setframe.mir -run-pass=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=MOV-NO-SETFRAME
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/mov_no_setframe.mir -passes=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=MOV-NO-SETFRAME
# RUN: llc -mtriple=x86_64-pc-windows-msvc -o - %t/mov_no_setframe.mir \
@@ -228,10 +228,10 @@ body: |
...
;--- mov_after_epilog.mir
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/mov_after_epilog.mir -run-pass=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=MOV-AFTER-EPILOG
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/mov_after_epilog.mir -passes=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=MOV-AFTER-EPILOG
# RUN: llc -mtriple=x86_64-pc-windows-msvc -o - \
@@ -267,10 +267,10 @@ body: |
...
;--- pop_before_mov.mir
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/pop_before_mov.mir -run-pass=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=POP-BEFORE-MOV
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/pop_before_mov.mir -passes=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=POP-BEFORE-MOV
# RUN: llc -mtriple=x86_64-pc-windows-msvc -o - %t/pop_before_mov.mir \
@@ -307,10 +307,10 @@ body: |
...
;--- mov_after_dealloc.mir
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/mov_after_dealloc.mir -run-pass=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=MOV-AFTER-DEALLOC
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/mov_after_dealloc.mir -passes=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=MOV-AFTER-DEALLOC
# RUN: llc -mtriple=x86_64-pc-windows-msvc -o - %t/mov_after_dealloc.mir \
@@ -347,10 +347,10 @@ body: |
...
;--- too_many_pops.mir
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - %t/too_many_pops.mir \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - %t/too_many_pops.mir \
# RUN: -run-pass=x86-wineh-unwindv2 2>&1 | FileCheck %s \
# RUN: --check-prefix=TOO-MANY-POPS
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - %t/too_many_pops.mir \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - %t/too_many_pops.mir \
# RUN: -passes=x86-wineh-unwindv2 2>&1 | FileCheck %s \
# RUN: --check-prefix=TOO-MANY-POPS
# RUN: llc -mtriple=x86_64-pc-windows-msvc -o - %t/too_many_pops.mir \
@@ -385,10 +385,10 @@ body: |
...
;--- pop_in_wrong_order.mir
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/pop_in_wrong_order.mir -run-pass=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=POP-WRONG-ORDER
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/pop_in_wrong_order.mir -passes=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=POP-WRONG-ORDER
# RUN: llc -mtriple=x86_64-pc-windows-msvc -o - %t/pop_in_wrong_order.mir \
@@ -425,10 +425,10 @@ body: |
...
;--- pop_after_epilog.mir
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/pop_after_epilog.mir -run-pass=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=POP-AFTER-EPILOG
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/pop_after_epilog.mir -passes=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=POP-AFTER-EPILOG
# RUN: llc -mtriple=x86_64-pc-windows-msvc -o - %t/pop_after_epilog.mir \
@@ -460,10 +460,10 @@ body: |
...
;--- instr_after_epilog.mir
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/instr_after_epilog.mir -run-pass=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=INSTR-AFTER-END
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/instr_after_epilog.mir -passes=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=INSTR-AFTER-END
# RUN: llc -mtriple=x86_64-pc-windows-msvc -o - %t/instr_after_epilog.mir \
@@ -495,10 +495,10 @@ body: |
...
;--- dealloc_pop_dealloc.mir
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/dealloc_pop_dealloc.mir -run-pass=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=DEALLOC-POP-DEALLOC
-# RUN: not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
+# RUN: env ASAN_OPTIONS=abort_on_error=1 not --crash llc -mtriple=x86_64-pc-windows-msvc -o - \
# RUN: %t/dealloc_pop_dealloc.mir -passes=x86-wineh-unwindv2 2>&1 | \
# RUN: FileCheck %s --check-prefix=DEALLOC-POP-DEALLOC
# RUN: llc -mtriple=x86_64-pc-windows-msvc -o - %t/dealloc_pop_dealloc.mir \
More information about the llvm-commits
mailing list