OSDN Git Service

* dump.c (dump_access): New function.
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Mar 2001 04:52:21 +0000 (04:52 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Mar 2001 04:52:21 +0000 (04:52 +0000)
(cp_dump_tree): Use it.  Dump basetype information for class
types.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40866 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/dump.c

index cdf1637..fc01aed 100644 (file)
@@ -1,3 +1,10 @@
+2001-03-26  Mike Yang <yang@research.att.com>
+           Mark Mitchell  <mark@codesourcery.com>
+
+       * dump.c (dump_access): New function.
+       (cp_dump_tree): Use it.  Dump basetype information for class
+       types.
+
 2001-03-26  Mark Mitchell  <mark@codesourcery.com>
 
        * Makefile.in (optimize.o): Depend on params.h.
index 9be8d88..a0982a6 100644 (file)
@@ -1,5 +1,5 @@
 /* Tree-dumping functionality for intermediate representation.
-   Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
    Written by Mark Mitchell <mark@codesourcery.com>
 
 This file is part of GNU CC.
@@ -25,6 +25,25 @@ Boston, MA 02111-1307, USA.  */
 #include "cp-tree.h"
 #include "c-dump.h"
 
+static void dump_access
+  PARAMS ((dump_info_p, tree));
+
+/* Dump a representation of the accessibility information associated
+   with T.  */
+
+static void
+dump_access (di, t)
+     dump_info_p di;
+     tree t;
+{
+  if (TREE_PROTECTED(t))
+    dump_string (di, "protected");
+  else if (TREE_PRIVATE(t))
+    dump_string (di, "private");
+  else
+    dump_string (di, "public");
+}
+
 int
 cp_dump_tree (di, t)
      dump_info_p di;
@@ -82,13 +101,33 @@ cp_dump_tree (di, t)
        }
 
       dump_child ("vfld", TYPE_VFIELD (t));
+       
+      {
+       int i;
+
+       for (i = 0; i < CLASSTYPE_N_BASECLASSES (t); ++i)
+         {
+           tree base_binfo = BINFO_BASETYPE (TYPE_BINFO (t), i);
+           dump_child ("base", BINFO_TYPE (base_binfo));
+           if (TREE_VIA_VIRTUAL (base_binfo)) 
+             dump_string (di, "virtual");
+           dump_access (di, base_binfo);
+         }
+      }
+      break;
+
+    case FIELD_DECL:
+      dump_access (di, t);
       break;
 
     case FUNCTION_DECL:
       if (!DECL_THUNK_P (t))
        {
-         if (DECL_FUNCTION_MEMBER_P (t))
-           dump_string (di, "member");
+         if (DECL_FUNCTION_MEMBER_P (t)) 
+           {
+             dump_string (di, "member");
+             dump_access (di, t);
+           }
          if (DECL_CONSTRUCTOR_P (t))
            dump_string (di, "constructor");
          if (DECL_DESTRUCTOR_P (t))
@@ -132,6 +171,7 @@ cp_dump_tree (di, t)
       dump_child ("rslt", DECL_TEMPLATE_RESULT (t));
       dump_child ("inst", DECL_TEMPLATE_INSTANTIATIONS (t));
       dump_child ("spcs", DECL_TEMPLATE_SPECIALIZATIONS (t));
+      dump_child ("prms", DECL_TEMPLATE_PARMS (t));
       break;
 
     case OVERLOAD: