Commit 005a5cb0 by Mike Yang Committed by Mark Mitchell

dump.c (dump_access): New function.

	* dump.c (dump_access): New function.
	(cp_dump_tree): Use it.  Dump basetype information for class
	types.

Co-Authored-By: Mark Mitchell <mark@codesourcery.com>

From-SVN: r40866
parent 5fa9abc3
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> 2001-03-26 Mark Mitchell <mark@codesourcery.com>
* Makefile.in (optimize.o): Depend on params.h. * Makefile.in (optimize.o): Depend on params.h.
......
/* Tree-dumping functionality for intermediate representation. /* 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> Written by Mark Mitchell <mark@codesourcery.com>
This file is part of GNU CC. This file is part of GNU CC.
...@@ -25,6 +25,25 @@ Boston, MA 02111-1307, USA. */ ...@@ -25,6 +25,25 @@ Boston, MA 02111-1307, USA. */
#include "cp-tree.h" #include "cp-tree.h"
#include "c-dump.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 int
cp_dump_tree (di, t) cp_dump_tree (di, t)
dump_info_p di; dump_info_p di;
...@@ -82,13 +101,33 @@ cp_dump_tree (di, t) ...@@ -82,13 +101,33 @@ cp_dump_tree (di, t)
} }
dump_child ("vfld", TYPE_VFIELD (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; break;
case FUNCTION_DECL: case FUNCTION_DECL:
if (!DECL_THUNK_P (t)) if (!DECL_THUNK_P (t))
{ {
if (DECL_FUNCTION_MEMBER_P (t)) if (DECL_FUNCTION_MEMBER_P (t))
dump_string (di, "member"); {
dump_string (di, "member");
dump_access (di, t);
}
if (DECL_CONSTRUCTOR_P (t)) if (DECL_CONSTRUCTOR_P (t))
dump_string (di, "constructor"); dump_string (di, "constructor");
if (DECL_DESTRUCTOR_P (t)) if (DECL_DESTRUCTOR_P (t))
...@@ -132,6 +171,7 @@ cp_dump_tree (di, t) ...@@ -132,6 +171,7 @@ cp_dump_tree (di, t)
dump_child ("rslt", DECL_TEMPLATE_RESULT (t)); dump_child ("rslt", DECL_TEMPLATE_RESULT (t));
dump_child ("inst", DECL_TEMPLATE_INSTANTIATIONS (t)); dump_child ("inst", DECL_TEMPLATE_INSTANTIATIONS (t));
dump_child ("spcs", DECL_TEMPLATE_SPECIALIZATIONS (t)); dump_child ("spcs", DECL_TEMPLATE_SPECIALIZATIONS (t));
dump_child ("prms", DECL_TEMPLATE_PARMS (t));
break; break;
case OVERLOAD: case OVERLOAD:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment