From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28474 invoked by alias); 5 Dec 2002 23:25:34 -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 28467 invoked from network); 5 Dec 2002 23:25:33 -0000 Received: from unknown (HELO jackfruit.Stanford.EDU) (171.64.38.136) by sources.redhat.com with SMTP; 5 Dec 2002 23:25:33 -0000 Received: (from carlton@localhost) by jackfruit.Stanford.EDU (8.11.6/8.11.6) id gB5NPWJ22193; Thu, 5 Dec 2002 15:25:32 -0800 X-Authentication-Warning: jackfruit.Stanford.EDU: carlton set sender to carlton@math.stanford.edu using -f To: gdb-patches@sources.redhat.com Cc: Daniel Jacobowitz , Andrew Cagney , Fernando Nasser Subject: [rfa] store.exp failures From: David Carlton Date: Thu, 05 Dec 2002 15:32:00 -0000 Message-ID: User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Common Lisp) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2002-12/txt/msg00205.txt.bz2 Whoops, I should have sent this to gdb-patches instead of gdb. On Thu, 5 Dec 2002 16:42:51 -0500, Daniel Jacobowitz said: > On Thu, Dec 05, 2002 at 01:30:54PM -0800, David Carlton wrote: >> So, basically, it looks like some of the calls to the wack_XXX >> functions are getting optimized out by the compiler, even though no >> optimization flags are being passed. > Make the function non-static and it should work as expected... Good call. Here's a patch, which cures my GCC 3.x problems (though the two GCC 2.95 failures remain; I have no idea if they're our fault or GCC's). Is it okay to commit? David Carlton carlton@math.stanford.edu 2002-12-05 David Carlton * gdb.base/store.c: Don't declare functions static. Index: store.c =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/store.c,v retrieving revision 1.1 diff -u -p -r1.1 store.c --- store.c 5 Dec 2002 01:48:19 -0000 1.1 +++ store.c 5 Dec 2002 21:48:24 -0000 @@ -2,37 +2,42 @@ in the target. This pretty much relies on the compiler taking heed of requests for values to be stored in registers. */ -static char +/* NOTE: carlton/2002-12-05: These functions were all static, but for + whatever reason that caused GCC 3.1 to optimize away some of the + function calls within main even when no optimization flags were + passed. */ + +char add_char (register char u, register char v) { return u + v; } -static short +short add_short (register short u, register short v) { return u + v; } -static int +int add_int (register int u, register int v) { return u + v; } -static long +long add_long (register long u, register long v) { return u + v; } -static float +float add_float (register float u, register float v) { return u + v; } -static double +double add_double (register double u, register double v) { return u + v; @@ -40,7 +45,7 @@ add_double (register double u, register /* */ -static char +char wack_char (register char u, register char v) { register char l = u; @@ -48,7 +53,7 @@ wack_char (register char u, register cha return l; } -static short +short wack_short (register short u, register short v) { register short l = u; @@ -56,7 +61,7 @@ wack_short (register short u, register s return l; } -static int +int wack_int (register int u, register int v) { register int l = u; @@ -64,7 +69,7 @@ wack_int (register int u, register int v return l; } -static long +long wack_long (register long u, register long v) { register long l = u; @@ -72,7 +77,7 @@ wack_long (register long u, register lon return l; } -static float +float wack_float (register float u, register float v) { register float l = u; @@ -80,7 +85,7 @@ wack_float (register float u, register f return l; } -static double +double wack_double (register double u, register double v) { register double l = u; @@ -93,7 +98,7 @@ struct s_2 { short s[2]; } z_2, s_2; struct s_3 { short s[3]; } z_3, s_3; struct s_4 { short s[4]; } z_4, s_4; -static struct s_1 +struct s_1 add_struct_1 (struct s_1 s) { int i; @@ -104,7 +109,7 @@ add_struct_1 (struct s_1 s) return s; } -static struct s_2 +struct s_2 add_struct_2 (struct s_2 s) { int i; @@ -115,7 +120,7 @@ add_struct_2 (struct s_2 s) return s; } -static struct s_3 +struct s_3 add_struct_3 (struct s_3 s) { int i; @@ -126,7 +131,7 @@ add_struct_3 (struct s_3 s) return s; } -static struct s_4 +struct s_4 add_struct_4 (struct s_4 s) { int i; @@ -137,7 +142,7 @@ add_struct_4 (struct s_4 s) return s; } -static struct s_1 +struct s_1 wack_struct_1 (void) { int i; register struct s_1 u = z_1; @@ -146,7 +151,7 @@ wack_struct_1 (void) return u; } -static struct s_2 +struct s_2 wack_struct_2 (void) { int i; register struct s_2 u = z_2; @@ -155,7 +160,7 @@ wack_struct_2 (void) return u; } -static struct s_3 +struct s_3 wack_struct_3 (void) { int i; register struct s_3 u = z_3; @@ -164,7 +169,7 @@ wack_struct_3 (void) return u; } -static struct s_4 +struct s_4 wack_struct_4 (void) { int i; register struct s_4 u = z_4; @@ -180,28 +185,28 @@ struct f_2 {unsigned i:2;unsigned j:2;un struct f_3 {unsigned i:3;unsigned j:3;unsigned k:3; } f_3 = {1,1,1}, F_3; struct f_4 {unsigned i:4;unsigned j:4;unsigned k:4; } f_4 = {1,1,1}, F_4; -static struct f_1 +struct f_1 wack_field_1 (void) { register struct f_1 u = f_1; return u; } -static struct f_2 +struct f_2 wack_field_2 (void) { register struct f_2 u = f_2; return u; } -static struct f_3 +struct f_3 wack_field_3 (void) { register struct f_3 u = f_3; return u; } -static struct f_4 +struct f_4 wack_field_4 (void) { register struct f_4 u = f_4;