From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10693 invoked by alias); 28 Feb 2014 17:58:02 -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 10129 invoked by uid 89); 28 Feb 2014 17:58:01 -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 17:58:00 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 055A2116596; Fri, 28 Feb 2014 12:57:58 -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 Mi1tjuIWW8Yx; Fri, 28 Feb 2014 12:57:57 -0500 (EST) Received: from joel.gnat.com (localhost.localdomain [127.0.0.1]) by rock.gnat.com (Postfix) with ESMTP id C82BA11656A; Fri, 28 Feb 2014 12:57:57 -0500 (EST) Received: by joel.gnat.com (Postfix, from userid 1000) id C5BF0E03BD; Fri, 28 Feb 2014 09:57:56 -0800 (PST) Date: Fri, 28 Feb 2014 17:58:00 -0000 From: Joel Brobecker To: Sanimir Agovic Cc: tromey@redhat.com, keven.boell@intel.com, gdb-patches@sourceware.org Subject: Re: [PATCH v5 12/15] test: multi-dimensional c99 vla. Message-ID: <20140228175756.GE16479@adacore.com> References: <1391704056-25246-1-git-send-email-sanimir.agovic@intel.com> <1391704056-25246-13-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-13-git-send-email-sanimir.agovic@intel.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SW-Source: 2014-02/txt/msg00872.txt.bz2 > gdb/testsuite: > * gdb.base/vla-multi.c: New. Test source file > for testing multi-dimensional VLA's in C. > * gdb.base/vla-multi.exp: New. Tests ensure > that multi-dimensional VLA's can be evaluated > correctly in C. A small formatting nit: You normally need a second space after periods. But in this case, you don't need to explain the purpose of the files. If you feel that the comment is needed somewhere, it should be in the files themselves. I have some minor comments below, but the patch is pre-approved with those changes made. > > > Signed-off-by: Sanimir Agovic > --- > gdb/testsuite/gdb.base/vla-multi.c | 55 ++++++++++++++++++++++++++++++++++++ > gdb/testsuite/gdb.base/vla-multi.exp | 48 +++++++++++++++++++++++++++++++ > 2 files changed, 103 insertions(+) > create mode 100644 gdb/testsuite/gdb.base/vla-multi.c > create mode 100644 gdb/testsuite/gdb.base/vla-multi.exp > > diff --git a/gdb/testsuite/gdb.base/vla-multi.c b/gdb/testsuite/gdb.base/vla-multi.c > new file mode 100644 > index 0000000..47c753e > --- /dev/null > +++ b/gdb/testsuite/gdb.base/vla-multi.c > @@ -0,0 +1,55 @@ > +/* This testcase is part of GDB, the GNU debugger. > + > + Copyright 2013 Free Software Foundation, Inc. The copyright year range needs to include 2014 (use "2013-2014"). > + > + 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 . */ > + > +void > +f1 (int n, int m, int vla_ptr[n][m]) > +{ > + return; /* f1_breakpoint */ > +} > + > +void > +f2 (int m, int vla_ptr[][m]) > +{ > + return; /* f2_breakpoint */ > +} > + > +void > +vla_mult (int n, int m) > +{ > + int vla[n][m]; > + int i, j; > + > + for (i = 0; i < n; i++) > + { > + for (j = 0; j < m; j++) > + { > + vla[i][j] = i + j; > + } > + } > + > + f1(n, m, vla); /* vla_filled */ > + f2(m, vla); > + > + return; > +} > + > +int > +main() Please add a "void" here as param. > +{ > + vla_mult(2, 2); > + return 0; > +} > diff --git a/gdb/testsuite/gdb.base/vla-multi.exp b/gdb/testsuite/gdb.base/vla-multi.exp > new file mode 100644 > index 0000000..53f626f > --- /dev/null > +++ b/gdb/testsuite/gdb.base/vla-multi.exp > @@ -0,0 +1,48 @@ > +# Copyright 2013 Free Software Foundation, Inc. Copyright year... > + > +# 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" Can you remove the ".c"? > + > +if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile}] } { > + return -1 > +} > + > +if ![runto_main] { > + return -1 > +} > + > +set sizeof_int [get_sizeof "int" 4] > + > +gdb_breakpoint [gdb_get_line_number "vla_filled"] > +gdb_continue_to_breakpoint "vla_filled" > +gdb_test "print vla" "\\$\\d+ = \\\{\\\{0, 1\\\}, \\\{1, 2\\\}\\\}" \ > + "print vla" > +gdb_test "print vla\[0\]\[1\]" "\\$\\d+ = 1" "print vla\[0\]\[1\]" > + > +gdb_breakpoint [gdb_get_line_number "f1_breakpoint"] > +gdb_continue_to_breakpoint "f1_breakpoint" > +gdb_test "print *vla_ptr" "\\$\\d+ = \\\{0, 1\\\}" "print *vla_ptr (f1)" > + > +# Calculate the overall size of the vla. > +set sizeof_vla [ expr "2" * "$sizeof_int" ] > +gdb_test "print sizeof vla_ptr\[0\]" "\\$\\d+ = ${sizeof_vla}" \ > + "print sizeof vla_ptr\[0\]" > +gdb_test "ptype &vla_ptr" \ > + "type = int \\\(\\\*\\\*\\\)\\\[variable length\\\]" \ > + "ptype &vla_ptr" > + > +gdb_breakpoint [gdb_get_line_number "f2_breakpoint"] > +gdb_continue_to_breakpoint "f2_breakpoint" > +gdb_test "print *vla_ptr" "\\$\\d+ = \\\{0, 1\\\}" "print *vla_ptr (f2)" Can you remove the $N matching for the "print" tests? -- Joel