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 cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits