[clang] [MS][clang] Make sure vector deleting dtor calls correct operator delete (PR #133950)

Devon Loehr via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 11 09:49:19 PDT 2025


DKLoehr wrote:

Thanks! Unfortunately it looks like the fix introduced a regression of #134265 on Windows. Repro:
```
struct Base {
  virtual ~Base();
  void operator delete[](void *) = delete;
};
class __declspec(dllexport) Derived : Base {};
```
Running `clang-cl repro.cc /std:c++20` results in the following error after 

```
repro.cc(5,29): error: attempt to use a deleted function
    5 | class __declspec(dllexport) Derived : Base {};
      |                             ^
repro.cc(5,29): note: in implicit destructor for 'Derived' first required here
repro.cc(5,18): note: due to 'Derived' being dllexported
    5 | class __declspec(dllexport) Derived : Base {};
      |                  ^
repro.cc(3,8): note: 'operator delete[]' has been explicitly marked deleted here
    3 |   void operator delete[](void *) = delete;
      |        ^
```

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


More information about the cfe-commits mailing list