summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/class.c9
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;
}