From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20835 invoked by alias); 29 Nov 2003 23:05:13 -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 20827 invoked from network); 29 Nov 2003 23:05:11 -0000 Received: from unknown (HELO fred.ninemoons.com) (68.14.214.217) by sources.redhat.com with SMTP; 29 Nov 2003 23:05:11 -0000 Received: from fred.ninemoons.com (fred.ninemoons.com [127.0.0.1]) by fred.ninemoons.com (8.12.8/8.12.8) with ESMTP id hATN57Xj013313; Sat, 29 Nov 2003 16:05:07 -0700 Received: (from fnf@localhost) by fred.ninemoons.com (8.12.8/8.12.8/Submit) id hATN51Uj013311; Sat, 29 Nov 2003 16:05:01 -0700 From: Fred Fish Message-Id: <200311292305.hATN51Uj013311@fred.ninemoons.com> Subject: [PATCH] Outwit compiler dead code elimination in break.exp test To: gdb-patches@sources.redhat.com Date: Sat, 29 Nov 2003 23:05:00 -0000 Cc: fnf@ninemoons.com Reply-To: fnf@ninemoons.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-SW-Source: 2003-11/txt/msg00623.txt.bz2 2003-11-29 Fred Fish * gdb.base/break.c (globalvar): Add. (marker1, marker2, marker3, marker4): Set globalvar. Index: gdb.base/break.c =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/break.c,v retrieving revision 1.3 diff -c -p -r1.3 break.c *** gdb.base/break.c 13 Nov 2003 15:34:39 -0000 1.3 --- gdb.base/break.c 29 Nov 2003 22:57:41 -0000 *************** char *arg; *** 37,54 **** * as places to try setting breakpoints at. They are explicitly * "one-line functions" to verify that this case works (some versions * of gcc have or have had problems with this). */ #ifdef PROTOTYPES ! int marker1 (void) { return (0); } ! int marker2 (int a) { return (1); } /* set breakpoint 8 here */ ! void marker3 (char *a, char *b) {} ! void marker4 (long d) {} /* set breakpoint 14 here */ #else ! int marker1 () { return (0); } ! int marker2 (a) int a; { return (1); } /* set breakpoint 9 here */ ! void marker3 (a, b) char *a, *b; {} ! void marker4 (d) long d; {} /* set breakpoint 13 here */ #endif /* --- 37,58 ---- * as places to try setting breakpoints at. They are explicitly * "one-line functions" to verify that this case works (some versions * of gcc have or have had problems with this). + * Recent versions of gcc have gotten smart enough that they will not + * call functions that have no use or visible side effect, so use + * globalvar to outwit the compiler for a while longer. */ + int globalvar; #ifdef PROTOTYPES ! int marker1 (void) { globalvar = 1; return (0); } ! int marker2 (int a) { globalvar = 2; return (1); } /* set breakpoint 8 here */ ! void marker3 (char *a, char *b) {globalvar = 3;} ! void marker4 (long d) {globalvar = 4;} /* set breakpoint 14 here */ #else ! int marker1 () { globalvar = 1; return (0); } ! int marker2 (a) int a; { globalvar = 2; return (1); } /* set breakpoint 9 here */ ! void marker3 (a, b) char *a, *b; {globalvar = 3;} ! void marker4 (d) long d; {globalvar = 4;} /* set breakpoint 13 here */ #endif /*