1*67e74705SXin Li // RUN: %clang_cc1 -fsyntax-only -verify %s 2*67e74705SXin Li 3*67e74705SXin Li struct A { 4*67e74705SXin Li int a; 5*67e74705SXin Li }; 6*67e74705SXin Li 7*67e74705SXin Li struct X1 : virtual A 8*67e74705SXin Li {}; 9*67e74705SXin Li 10*67e74705SXin Li struct Y1 : X1, virtual A 11*67e74705SXin Li {}; 12*67e74705SXin Li 13*67e74705SXin Li struct Y2 : X1, A // expected-warning{{direct base 'A' is inaccessible due to ambiguity:\n struct Y2 -> struct X1 -> struct A\n struct Y2 -> struct A}} 14*67e74705SXin Li {}; 15*67e74705SXin Li 16*67e74705SXin Li struct X2 : A 17*67e74705SXin Li {}; 18*67e74705SXin Li 19*67e74705SXin Li struct Z1 : X2, virtual A // expected-warning{{direct base 'A' is inaccessible due to ambiguity:\n struct Z1 -> struct X2 -> struct A\n struct Z1 -> struct A}} 20*67e74705SXin Li {}; 21*67e74705SXin Li 22*67e74705SXin Li struct Z2 : X2, A // expected-warning{{direct base 'A' is inaccessible due to ambiguity:\n struct Z2 -> struct X2 -> struct A\n struct Z2 -> struct A}} 23*67e74705SXin Li {}; 24