diff options
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/class.c | 9 |
2 files changed, 8 insertions, 6 deletions
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 <khan@xraylith.wisc.edu> + + * 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 <khan@xraylith.wisc.edu> * 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; } |