[clang] [clang][win] MSVC-compat: Use `__global_delete` wrapper in deleting destructors instead of directly referencing `::operator delete` (PR #188372)
Mariya Podchishchaeva via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 8 02:13:15 PDT 2026
================
@@ -260,10 +279,38 @@ void bar() {
// X86-NEXT: %[[ARRSZ:.*]] = mul i32 4, %[[COOKIE:.*]]
// X64-NEXT: %[[TOTALSZ:.*]] = add i64 %[[ARRSZ]], 8
// X86-NEXT: %[[TOTALSZ:.*]] = add i32 %[[ARRSZ]], 4
-// X64-NEXT: call void @"??_V at YAXPEAX_K@Z"(ptr noundef %2, i64 noundef %[[TOTALSZ]])
-// X86-NEXT: call void @"??_V at YAXPAXI@Z"(ptr noundef %2, i32 noundef %[[TOTALSZ]])
+// X64-NEXT: call void @"?__global_delete@@YAXPEAX_K at Z"(ptr noundef %2, i64 noundef %[[TOTALSZ]])
+// X86-NEXT: call void @"?__global_delete@@YAXPAXI at Z"(ptr noundef %2, i32 noundef %[[TOTALSZ]])
// CHECK-NEXT: br label %dtor.continue
+// Test that when a class provides its own operator delete, the deleting
+// destructor calls __global_delete (a weak external) instead of directly
----------------
Fznamznon wrote:
Not weak, right?
```suggestion
// destructor calls __global_delete instead of directly
```
https://github.com/llvm/llvm-project/pull/188372
More information about the cfe-commits
mailing list