DKLoehr wrote:
This is the smallest reproduction I could find:
```
struct BaseDelete1 {
void operator delete[](void *);
};
struct BaseDelete2 {
void operator delete[](void *);
};
struct BaseDestructor {
virtual ~BaseDestructor() = default;
};
struct Final : BaseDelete1, BaseDelete2, BaseDestructor {};
```
When run with `clang++ repro.cc -fsyntax-only -std=c++20`, it yields the
following error. Removing any one of the three base classes causes it to
compile without problems.
```
repro.cc:10:8: error: member 'operator delete[]' found in multiple base classes
of different types
10 | struct Final : BaseDelete1, BaseDelete2, BaseDestructor {};
| ^
repro.cc:10:8: note: in implicit destructor for 'Final' first required here
repro.cc:2:8: note: member found by ambiguous name lookup
2 | void operator delete[](void *);
| ^
repro.cc:5:8: note: member found by ambiguous name lookup
5 | void operator delete[](void *);
| ^
```
https://github.com/llvm/llvm-project/pull/133950
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits