From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26185 invoked by alias); 13 Dec 2002 21:16:50 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 26126 invoked from network); 13 Dec 2002 21:16:46 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by 209.249.29.67 with SMTP; 13 Dec 2002 21:16:46 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id gBDKnvP13146 for ; Fri, 13 Dec 2002 15:49:57 -0500 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [172.16.52.156]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id gBDLFiD24257; Fri, 13 Dec 2002 16:15:44 -0500 Received: from localhost.localdomain (vpn50-3.rdu.redhat.com [172.16.50.3]) by pobox.corp.redhat.com (8.11.6/8.11.6) with ESMTP id gBDLFhY04858; Fri, 13 Dec 2002 16:15:43 -0500 Received: (from kev@localhost) by localhost.localdomain (8.11.6/8.11.6) id gBDLFcp13137; Fri, 13 Dec 2002 14:15:38 -0700 Date: Fri, 13 Dec 2002 13:18:00 -0000 From: Kevin Buettner Message-Id: <1021213211537.ZM13136@localhost.localdomain> In-Reply-To: Kevin Buettner "Re: [RFC] Replace complain() with complaint()" (Dec 13, 1:38pm) References: <1021212043633.ZM12225@localhost.localdomain> <3DFA412D.4030409@redhat.com> <1021213203820.ZM21776@localhost.localdomain> To: Andrew Cagney Subject: Re: [RFC] Replace complain() with complaint() Cc: gdb-patches@sources.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2002-12/txt/msg00434.txt.bz2 On Dec 13, 1:38pm, Kevin Buettner wrote: > On Dec 13, 3:21pm, Andrew Cagney wrote: > > > > - complain (&anon_block_end_complaint, BLOCK_END (block), BLOCK_START (block)); > > > + complaint (&symfile_complaints, > > > + "block end address 0x%lx less than block start address 0x%lx (patched it)", > > > + BLOCK_END (block), BLOCK_START (block)); > > > > Hmm, I don't think that is right. It should have attacted a -Wformat > > warning as block start/end are core-addrs. From memory though, a native > > i386 build has CORE_ADDR as a long which might explain why you don't see > > the warning. [...] > I'll try a cross build for a 64-bit target... Okay, now I see a -Wformat warning. Fortunately, buildsym.c was the only file affected. Below are the diffs that I propose using for that file. (These take the place of the buildsym.c diffs that I previously posted.) The ChangeLog entries remain the same. Note the use of paddr_nz() to convert the CORE_ADDR to a string. According to defs.h, this most closely corresponds to the %lx format. Also, the paddr() family of functions have an advantage over local_hex_string_custom() (and the like) in that it's safe to use several of these calls together without having to worry about the internal storage being overwritten. Index: buildsym.c =================================================================== RCS file: /cvs/src/src/gdb/buildsym.c,v retrieving revision 1.23 diff -u -p -r1.23 buildsym.c --- buildsym.c 18 Nov 2002 20:57:55 -0000 1.23 +++ buildsym.c 13 Dec 2002 21:07:14 -0000 @@ -73,23 +73,6 @@ static int compare_line_numbers (const v #define INITIAL_LINE_VECTOR_LENGTH 1000 -/* Complaints about the symbols we have encountered. */ - -struct deprecated_complaint block_end_complaint = -{"block end address less than block start address in %s (patched it)", 0, 0}; - -struct deprecated_complaint anon_block_end_complaint = -{"block end address 0x%lx less than block start address 0x%lx (patched it)", 0, 0}; - -struct deprecated_complaint innerblock_complaint = -{"inner block not inside outer block in %s", 0, 0}; - -struct deprecated_complaint innerblock_anon_complaint = -{"inner block (0x%lx-0x%lx) not inside outer block (0x%lx-0x%lx)", 0, 0}; - -struct deprecated_complaint blockvector_complaint = -{"block at %s out of order", 0, 0}; - /* maintain the lists of symbols and blocks */ /* Add a pending list to free_pendings. */ @@ -408,11 +391,15 @@ finish_block (struct symbol *symbol, str { if (symbol) { - complain (&block_end_complaint, SYMBOL_SOURCE_NAME (symbol)); + complaint (&symfile_complaints, + "block end address less than block start address in %s (patched it)", + SYMBOL_SOURCE_NAME (symbol)); } else { - complain (&anon_block_end_complaint, BLOCK_END (block), BLOCK_START (block)); + complaint (&symfile_complaints, + "block end address 0x%s less than block start address 0x%s (patched it)", + paddr_nz (BLOCK_END (block)), paddr_nz (BLOCK_START (block))); } /* Better than nothing */ BLOCK_END (block) = BLOCK_START (block); @@ -438,14 +425,18 @@ finish_block (struct symbol *symbol, str { if (symbol) { - complain (&innerblock_complaint, - SYMBOL_SOURCE_NAME (symbol)); + complaint (&symfile_complaints, + "inner block not inside outer block in %s", + SYMBOL_SOURCE_NAME (symbol)); } else { - complain (&innerblock_anon_complaint, BLOCK_START (pblock->block), - BLOCK_END (pblock->block), BLOCK_START (block), - BLOCK_END (block)); + complaint (&symfile_complaints, + "inner block (0x%s-0x%s) not inside outer block (0x%s-0x%s)", + paddr_nz (BLOCK_START (pblock->block)), + paddr_nz (BLOCK_END (pblock->block)), + paddr_nz (BLOCK_START (block)), + paddr_nz (BLOCK_END (block))); } if (BLOCK_START (pblock->block) < BLOCK_START (block)) BLOCK_START (pblock->block) = BLOCK_START (block); @@ -550,8 +541,8 @@ make_blockvector (struct objfile *objfil CORE_ADDR start = BLOCK_START (BLOCKVECTOR_BLOCK (blockvector, i)); - complain (&blockvector_complaint, - local_hex_string ((LONGEST) start)); + complaint (&symfile_complaints, "block at %s out of order", + local_hex_string ((LONGEST) start)); } } } @@ -870,9 +861,8 @@ end_symtab (CORE_ADDR end_addr, struct o same. FIXME: Find out why it is happening. This is not believed to happen in most cases (even for coffread.c); it used to be an abort(). */ - static struct deprecated_complaint msg = - {"Context stack not empty in end_symtab", 0, 0}; - complain (&msg); + complaint (&symfile_complaints, + "Context stack not empty in end_symtab"); context_stack_depth = 0; } }