hokein added inline comments.
================ Comment at: clang/test/SemaCXX/base-class-ambiguity-check.cpp:15 + // Should not crash on an incomplete-type and dependent base specifier. + struct Derived : Base1, Base2 {}; // expected-error {{implicit instantiation of undefined member 'Foo2<int>::Base1'}} \ + expected-error {{implicit instantiation of undefined member 'Foo2<int>::Base2'}} ---------------- The diagnostic is suboptimal (I'd expect it is "invalid use of incomplete type"), but it is not regression, clang shows the same diagnostics for the following non-crash case: ``` template <typename T> struct Foo2 { struct Base1; struct Derived : Base1 {}; } ``` ================ Comment at: clang/test/SemaCXX/ms-interface.cpp:114 + // Should not crash on an incomplete-type base specifier. + __interface Foo : Base {}; +}; ---------------- sammccall wrote: > is there some tricky interaction with __interface here that justifies testing > this again? If it's testing the same codepath, I'd say one test is enough They test different paths (this was founded in my previous-and-incomplete fix): - this tests `isInterface()` on Line 2740 in `SemaDeclCxx.cpp`; - the above one tests `NoteIndirectBases` (multiple base classes) on Line 2736 in `SemaDeclCXX.cpp`; Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D113474/new/ https://reviews.llvm.org/D113474 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits