From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29971 invoked by alias); 12 Apr 2011 19:53:32 -0000 Received: (qmail 29963 invoked by uid 22791); 12 Apr 2011 19:53:31 -0000 X-SWARE-Spam-Status: No, hits=-1.2 required=5.0 tests=AWL,BAYES_40,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,SPF_HELO_PASS,TW_CX,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.44.51) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 12 Apr 2011 19:53:27 +0000 Received: from wpaz1.hot.corp.google.com (wpaz1.hot.corp.google.com [172.24.198.65]) by smtp-out.google.com with ESMTP id p3CJrPQh010459; Tue, 12 Apr 2011 12:53:25 -0700 Received: from topo.tor.corp.google.com (topo.tor.corp.google.com [172.29.41.2]) by wpaz1.hot.corp.google.com with ESMTP id p3CJrNV4018110; Tue, 12 Apr 2011 12:53:23 -0700 Received: by topo.tor.corp.google.com (Postfix, from userid 54752) id 3B1DB1DA1BE; Tue, 12 Apr 2011 15:53:23 -0400 (EDT) To: reply@codereview.appspotmail.com, crowl@google.com, gcc-patches@gcc.gnu.org Subject: [pph] Add debugging for namespace_decl (issue4368079) Message-Id: <20110412195323.3B1DB1DA1BE@topo.tor.corp.google.com> Date: Tue, 12 Apr 2011 19:53:00 -0000 From: dnovillo@google.com (Diego Novillo) X-System-Of-Record: true X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-04/txt/msg00930.txt.bz2 This patch adds some debugging support for printing namespace_decls and their associated binding level. Committed to pph branch. 2011-04-12 Diego Novillo * cp-tree.h (print_namespace): Declare. * name-lookup.c (print_namespace): New. * parser.c (cp_debug_print_context_stack): Increment loop counter. diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 9ce164b..1fcd0d7 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -4758,6 +4758,7 @@ extern void print_other_binding_stack (struct cp_binding_level *); extern tree maybe_push_decl (tree); extern tree current_decl_namespace (void); extern cxx_binding *cxx_binding_make (tree, tree); +extern void print_namespace (tree); /* decl.c */ extern tree poplevel (int, int, int); diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c index d4fd216..e39456e 100644 --- a/gcc/cp/name-lookup.c +++ b/gcc/cp/name-lookup.c @@ -1751,6 +1751,21 @@ print_binding_level (struct cp_binding_level* lvl) } } + +/* Print the given namespace decl NS to stderr. */ + +void +print_namespace (tree ns) +{ + struct cp_binding_level *level = NAMESPACE_LEVEL (ns); + + fprintf (stderr, "Namespace name: "); + print_generic_expr (stderr, ns, 0); + fprintf (stderr, "\nBinding contour\n"); + print_binding_level (level); +} + + void print_other_binding_stack (struct cp_binding_level *stack) { diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index fd2da62..32c81a4 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -352,6 +352,7 @@ cp_debug_print_context (FILE *file, cp_parser_context *c) /* Print the stack of parsing contexts to FILE starting with FIRST. */ + static void cp_debug_print_context_stack (FILE *file, cp_parser_context *first) { @@ -359,7 +360,7 @@ cp_debug_print_context_stack (FILE *file, cp_parser_context *first) cp_parser_context *c; fprintf (file, "Parsing context stack:\n"); - for (i = 0, c = first; c; c = c->next) + for (i = 0, c = first; c; c = c->next, i++) { fprintf (file, "\t#%u: ", i); cp_debug_print_context (file, c); -- This patch is available for review at http://codereview.appspot.com/4368079