From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25492 invoked by alias); 11 Dec 2002 21:14:39 -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 25482 invoked from network); 11 Dec 2002 21:14:38 -0000 Received: from unknown (HELO jackfruit.Stanford.EDU) (171.64.38.136) by sources.redhat.com with SMTP; 11 Dec 2002 21:14:38 -0000 Received: (from carlton@localhost) by jackfruit.Stanford.EDU (8.11.6/8.11.6) id gBBLEc623301; Wed, 11 Dec 2002 13:14:38 -0800 X-Authentication-Warning: jackfruit.Stanford.EDU: carlton set sender to carlton@math.stanford.edu using -f To: gdb-patches@sources.redhat.com Subject: [rfa/testsuite] gdb.base/selftest.exp: work with optimization Cc: Fernando Nasser From: David Carlton Date: Wed, 11 Dec 2002 13:24:00 -0000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2002-12/txt/msg00370.txt.bz2 I recently happened to compare the outputs of gdb.base/selftest.exp when GDB is compiled with and without optimization, and noticed that it failed only in the optimized case. Digging further, it happens during the part of the test that steps through captured_main; when GDB is compiled with optimization, GDB sometimes stops on the opening brace. That's not an error, but the regexps in question didn't allow that. When I added a regexp to allow that, I found that GDB also sometimes stopped on the line 'current_directory = gdb_dirbuf', even though it's after the dirarg initialization line that we're looking for. This looks like a reordering by the optimizer (or perhaps misleading location information from the optimizer), so it's not a GDB bug either. Here's a patch to selftest.exp to allow those possibilities; with this patch, all the tests in that file pass whether or not GDB is compiled with optimization. David Carlton carlton@math.stanford.edu 2002-12-11 David Carlton * gdb.base/selftest.exp (do_steps_and_nexts): Allow initial brace and current_directory initialization. Index: selftest.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/selftest.exp,v retrieving revision 1.5 diff -u -p -r1.5 selftest.exp --- selftest.exp 4 Dec 2002 03:15:27 -0000 1.5 +++ selftest.exp 11 Dec 2002 21:08:19 -0000 @@ -54,6 +54,10 @@ proc do_steps_and_nexts {} { for {set count 0} {$count < 26} {incr count} { send_gdb "list\n" + # NOTE: carlton/2002-12-11: The "initial brace" and + # "current_directory initialization" possibilities happen to + # me with GCC 3.1 on i686-pc-linux-gnu when I compile with + # optimization. gdb_expect { -re ".*context = data.*$gdb_prompt $" { set description "step over context initialization" @@ -157,6 +161,14 @@ proc do_steps_and_nexts {} { -re ".*textdomain .PACKAGE.;.*$gdb_prompt $" { set description "next over textdomain PACKAGE" set command "next" + } + -re "\[0-9\]*\t\{\r\n$gdb_prompt $" { + set description "step over initial brace" + set command "step" + } + -re ".*current_directory = gdb_dirbuf.*$gdb_prompt $" { + set description "step over current_directory initialization" + set command "step" } -re "\[ \t\]+\{\r\n$gdb_prompt $" { setup_xfail "mips-*-irix5*"