From: Mike Yang Date: Tue, 27 Mar 2001 04:52:21 +0000 (+0000) Subject: dump.c (dump_access): New function. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=005a5cb08b854e411ef9941d4fcb9de0bbce755a;p=gcc.git 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 From-SVN: r40866 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index cdf1637c61d..fc01aedfdbb 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,10 @@ +2001-03-26 Mike Yang + Mark Mitchell + + * dump.c (dump_access): New function. + (cp_dump_tree): Use it. Dump basetype information for class + types. + 2001-03-26 Mark Mitchell * Makefile.in (optimize.o): Depend on params.h. diff --git a/gcc/cp/dump.c b/gcc/cp/dump.c index 9be8d88921f..a0982a616b2 100644 --- a/gcc/cp/dump.c +++ b/gcc/cp/dump.c @@ -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 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: