From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16419 invoked by alias); 28 Feb 2014 18:01:10 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 16408 invoked by uid 89); 28 Feb 2014 18:01:09 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.2 X-HELO: rock.gnat.com Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Fri, 28 Feb 2014 18:01:08 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 9CCC8116583; Fri, 28 Feb 2014 13:01:06 -0500 (EST) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id go9hJTKaxFtz; Fri, 28 Feb 2014 13:01:06 -0500 (EST) Received: from joel.gnat.com (localhost.localdomain [127.0.0.1]) by rock.gnat.com (Postfix) with ESMTP id 53FD3116573; Fri, 28 Feb 2014 13:01:06 -0500 (EST) Received: by joel.gnat.com (Postfix, from userid 1000) id 8658DE03BD; Fri, 28 Feb 2014 10:01:05 -0800 (PST) Date: Fri, 28 Feb 2014 18:01:00 -0000 From: Joel Brobecker To: Sanimir Agovic Cc: tromey@redhat.com, keven.boell@intel.com, gdb-patches@sourceware.org Subject: Re: [PATCH v5 13/15] test: evaluate pointers to C99 vla correctly. Message-ID: <20140228180105.GF16479@adacore.com> References: <1391704056-25246-1-git-send-email-sanimir.agovic@intel.com> <1391704056-25246-14-git-send-email-sanimir.agovic@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1391704056-25246-14-git-send-email-sanimir.agovic@intel.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SW-Source: 2014-02/txt/msg00873.txt.bz2 On Thu, Feb 06, 2014 at 05:27:34PM +0100, Sanimir Agovic wrote: > 2013-10-18 Keven Boell > Sanimir Agovic > > gdb/testsuite: > * gdb.base/vla-ptr.c: New. Test source file > for testing pointers to VLA's in C. > * gdb.base/vla-ptr.exp: New. Tests ensure that > the evaluation of pointers to VLA's work > correctly in C. Same as the previous test: You don't need to say in the ChangeLog file what the purpose of files are. And I have the same kind of minor comments I made in another test patch. Also pre-approved with those comments addressed. > > > Signed-off-by: Sanimir Agovic > --- > gdb/testsuite/gdb.base/vla-ptr.c | 63 ++++++++++++++++++++++++++++++++++++++ > gdb/testsuite/gdb.base/vla-ptr.exp | 52 +++++++++++++++++++++++++++++++ > 2 files changed, 115 insertions(+) > create mode 100644 gdb/testsuite/gdb.base/vla-ptr.c > create mode 100644 gdb/testsuite/gdb.base/vla-ptr.exp > > diff --git a/gdb/testsuite/gdb.base/vla-ptr.c b/gdb/testsuite/gdb.base/vla-ptr.c > new file mode 100644 > index 0000000..85c41e0 > --- /dev/null > +++ b/gdb/testsuite/gdb.base/vla-ptr.c > @@ -0,0 +1,63 @@ > +/* This testcase is part of GDB, the GNU debugger. > + > + Copyright 2013 Free Software Foundation, Inc. Please update the copyright year range... > + > + This program is free software; you can redistribute it and/or modify > + it under the terms of the GNU General Public License as published by > + the Free Software Foundation; either version 3 of the License, or > + (at your option) any later version. > + > + This program is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + GNU General Public License for more details. > + > + You should have received a copy of the GNU General Public License > + along with this program. If not, see . */ > + > +#define SIZE 5 > + > +void > +foo (int n, int vla_ptr[n]) > +{ > + return; /* foo_bp */ > +} > + > +void > +bar (int *vla_ptr) > +{ > + return; /* bar_bp */ > +} > + > +void > +vla_func (int n) > +{ > + int vla[n]; > + int (*vla_ptr)[n]; > + typedef int typedef_vla[n]; > + typedef_vla td_vla; > + int i; > + > + for (i = 0; i < n; i++) > + { > + vla[i] = 2+i; > + td_vla[i] = 4+i; > + } > + > + foo(n, vla); > + bar(vla); > + > + vla_ptr = &vla; > + > + typedef_vla *td_ptr = &td_vla; /* vla_ptr_assigned */ > + > + return; /* typedef_ptr_assigned */ > +} > + > +int > +main () Missing "void" as arg. > -- > 1.8.4.2 > +{ > + vla_func(SIZE); > + > + return 0; > +} > diff --git a/gdb/testsuite/gdb.base/vla-ptr.exp b/gdb/testsuite/gdb.base/vla-ptr.exp > new file mode 100644 > index 0000000..a7785b0 > --- /dev/null > +++ b/gdb/testsuite/gdb.base/vla-ptr.exp > @@ -0,0 +1,52 @@ > +# Copyright 2013 Free Software Foundation, Inc. Copyright year range... > + > +# This program is free software; you can redistribute it and/or modify > +# it under the terms of the GNU General Public License as published by > +# the Free Software Foundation; either version 3 of the License, or > +# (at your option) any later version. > +# > +# This program is distributed in the hope that it will be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU General Public License for more details. > +# > +# You should have received a copy of the GNU General Public License > +# along with this program. If not, see . > + > +standard_testfile ".c" No ".c"... > + > +if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile}] } { > + return -1 > +} > + > +if ![runto_main] { > + return -1 > +} > + > +set sizeof_int [get_sizeof "int" 4] > + > +# Check that VLA passed to function (pointer) points to the first element. > +gdb_breakpoint [gdb_get_line_number "foo_bp"] > +gdb_continue_to_breakpoint "foo_bp" > +gdb_test "print vla_ptr" "\\\(int \\\*\\\) $hex" "print vla_ptr (foo)" > +gdb_test "print *vla_ptr" "\\$\\d+ = 2" "print *vla_ptr (foo)" > + > +gdb_breakpoint [gdb_get_line_number "bar_bp"] > +gdb_continue_to_breakpoint "bar_bp" > +gdb_test "print vla_ptr" "\\\(int \\\*\\\) $hex" "print vla_ptr (bar)" > +gdb_test "print *vla_ptr" "\\$\\d+ = 2" "print *vla_ptr (bar)" > + > +gdb_breakpoint [gdb_get_line_number "vla_ptr_assigned"] > +gdb_continue_to_breakpoint "vla_ptr_assigned" > +gdb_test "print *vla_ptr" "\\$\\d+ = \\\{2, 3, 4, 5, 6\\\}" \ > + "print *vla_ptr (vla_func)" > + > +# Calculate the overall size of the vla. > +set sizeof_vla [ expr "5" * "$sizeof_int" ] > +gdb_test "print sizeof(*vla_ptr)" "\\$\\d+ = ${sizeof_vla}" \ > + "print sizeof(*vla_ptr) (vla_func)" > + > +gdb_breakpoint [gdb_get_line_number "typedef_ptr_assigned"] > +gdb_continue_to_breakpoint "typedef_ptr_assigned" > +gdb_test "print td_vla" "\\$\\d+ = \\\{4, 5, 6, 7, 8\\\}" "print td_vla" > +gdb_test "print *td_ptr" "\\$\\d+ = \\\{4, 5, 6, 7, 8\\\}" "print *td_ptr" Please remove the $N checking in the expected output of "print" tests. > -- > 1.8.4.2 -- Joel