From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6831 invoked by alias); 15 Jan 2006 20:28:57 -0000 Received: (qmail 6801 invoked by uid 22791); 15 Jan 2006 20:28:54 -0000 X-Spam-Check-By: sourceware.org Received: from nevyn.them.org (HELO nevyn.them.org) (66.93.172.17) by sourceware.org (qpsmtpd/0.31.1) with ESMTP; Sun, 15 Jan 2006 20:28:52 +0000 Received: from drow by nevyn.them.org with local (Exim 4.54) id 1EyEUc-0003Lh-S6 for gdb-patches@sourceware.org; Sun, 15 Jan 2006 15:28:50 -0500 Date: Sun, 15 Jan 2006 20:28:00 -0000 From: Daniel Jacobowitz To: gdb-patches@sourceware.org Subject: Fix non-pointer-sign gcc warnings Message-ID: <20060115202850.GB12204@nevyn.them.org> Mail-Followup-To: gdb-patches@sourceware.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.8i X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2006-01/txt/msg00183.txt.bz2 Prompted by Mark's suggestion, this is the only remaining GCC4 warnings after -Wno-pointer-sign. GCC4 is much more aggressive about inlining static functions, especially when only used once. It then does uninitialized variable warnings across variables passed by address to inlined functions. It also can do uninitialized warnings for members of structures. The one in macroexp.c is not a real bug but I think GCC is justified in not being able to see through it. The one in stabsread.c is a real bug and would cause GDB to crash on bad stabs. -- Daniel Jacobowitz CodeSourcery 2006-01-15 Daniel Jacobowitz * macroexp.c (expand): Initialize argc. * stabsread.c (read_type): Handle errors from read_args. (read_args): Return NULL for errors. Index: macroexp.c =================================================================== RCS file: /cvs/src/src/gdb/macroexp.c,v retrieving revision 1.8 diff -u -p -r1.8 macroexp.c --- macroexp.c 17 Dec 2005 22:34:01 -0000 1.8 +++ macroexp.c 15 Jan 2006 20:23:21 -0000 @@ -927,7 +927,7 @@ expand (const char *id, else if (def->kind == macro_function_like) { struct cleanup *back_to = make_cleanup (null_cleanup, 0); - int argc; + int argc = 0; struct macro_buffer *argv = NULL; struct macro_buffer substituted; struct macro_buffer substituted_src; Index: stabsread.c =================================================================== RCS file: /cvs/src/src/gdb/stabsread.c,v retrieving revision 1.82 diff -u -p -r1.82 stabsread.c --- stabsread.c 17 Dec 2005 22:34:02 -0000 1.82 +++ stabsread.c 15 Jan 2006 20:23:22 -0000 @@ -1804,6 +1804,8 @@ again: return_type = read_type (pp, objfile); args = read_args (pp, ';', objfile, &nargs, &varargs); + if (args == NULL) + return error_type (pp, objfile); type = dbx_alloc_type (typenums, objfile); smash_to_method_type (type, domain, return_type, args, nargs, varargs); @@ -3985,8 +3987,8 @@ handle_true_range: } /* Read in an argument list. This is a list of types, separated by commas - and terminated with END. Return the list of types read in, or (struct type - **)-1 if there is an error. */ + and terminated with END. Return the list of types read in, or NULL + if there is an error. */ static struct field * read_args (char **pp, int end, struct objfile *objfile, int *nargsp, @@ -4001,7 +4003,7 @@ read_args (char **pp, int end, struct ob { if (**pp != ',') /* Invalid argument list: no ','. */ - return (struct field *) -1; + return NULL; (*pp)++; STABS_CONTINUE (pp, objfile); types[n++] = read_type (pp, objfile);