File gdb-6.3-inheritance-20050324.patch of Package gdb

2005-03-24  Jeff Johnston  <jjohnstn@redhat.com>

	* valops.c (check_field_in): Use check_typedef for base classes
	to avoid problems with opaque type references.

Index: gdb-6.8.50.20081128/gdb/valops.c
===================================================================
--- gdb-6.8.50.20081128.orig/gdb/valops.c	2008-12-08 10:56:11.000000000 +0100
+++ gdb-6.8.50.20081128/gdb/valops.c	2008-12-08 10:59:14.000000000 +0100
@@ -2484,8 +2484,14 @@ check_field (struct type *type, const ch
     }
 
   for (i = TYPE_N_BASECLASSES (type) - 1; i >= 0; i--)
-    if (check_field (TYPE_BASECLASS (type, i), name))
-      return 1;
+    {
+      /* Check the base classes.  Make sure we have the real type for
+         each base class as opposed to an opaque declaration.  */
+      struct type *baseclass = check_typedef (TYPE_BASECLASS (type, i));
+
+      if (check_field (baseclass, name))
+	return 1;
+    }
 
   return 0;
 }