diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 7f5425e7c49..221dbd447e6 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +1999-12-14 Mumit Khan + + * class.c (finish_base_struct): Allow multiple COM base classes + as well as non-COM bases as long as it's not the leftmost. + 1999-12-13 Mumit Khan * lex.c (saving_parse_to_obstack): New global. diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 7d2965df616..60132b5b705 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -1569,15 +1569,12 @@ finish_base_struct (t, b) if (CLASSTYPE_COM_INTERFACE (basetype)) { CLASSTYPE_COM_INTERFACE (t) = 1; - if (i > 0) - cp_error - ("COM interface type `%T' must be the leftmost base class", - basetype); } else if (CLASSTYPE_COM_INTERFACE (t) && i == 0) { - cp_error ("COM interface type `%T' with non-COM base class `%T'", - t, basetype); + cp_error + ("COM interface type `%T' with non-COM leftmost base class `%T'", + t, basetype); CLASSTYPE_COM_INTERFACE (t) = 0; }