From ec33ab7fc4639788b0b493f38867bcb987b62a82 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Thu, 1 Nov 2007 17:34:57 +0000 Subject: [PATCH] * gdb.cp/arg-reference.exp, gdb.cp/arg-reference.c: New files. --- gdb/testsuite/ChangeLog | 4 +++ gdb/testsuite/gdb.cp/arg-reference.cc | 49 ++++++++++++++++++++++++++ gdb/testsuite/gdb.cp/arg-reference.exp | 47 ++++++++++++++++++++++++ 3 files changed, 100 insertions(+) create mode 100644 gdb/testsuite/gdb.cp/arg-reference.cc create mode 100644 gdb/testsuite/gdb.cp/arg-reference.exp diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 1b06b5af1e9..42db37a86e2 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2007-11-01 Jan Kratochvil + + * gdb.cp/arg-reference.exp, gdb.cp/arg-reference.c: New files. + 2007-10-30 Ulrich Weigand * gdb.base/dfp-test.exp: Fail gracefully if toolchain does not diff --git a/gdb/testsuite/gdb.cp/arg-reference.cc b/gdb/testsuite/gdb.cp/arg-reference.cc new file mode 100644 index 00000000000..c7a67a69b8f --- /dev/null +++ b/gdb/testsuite/gdb.cp/arg-reference.cc @@ -0,0 +1,49 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright (C) 2007 Free Software Foundation, Inc. + + This file is part of GDB. + + 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 . */ + +class Obj +{ +public: + Obj (); + Obj (const Obj &); + ~Obj (); + int var; +}; + +int foo (Obj arg) +{ + arg.var++; + return arg.var; +} + +int main() +{ + Obj obj; + + return 0; /* initialized */ +} + +Obj::Obj () +{ + var = 1; +} + +Obj::~Obj () +{ +} diff --git a/gdb/testsuite/gdb.cp/arg-reference.exp b/gdb/testsuite/gdb.cp/arg-reference.exp new file mode 100644 index 00000000000..55f03ee1e03 --- /dev/null +++ b/gdb/testsuite/gdb.cp/arg-reference.exp @@ -0,0 +1,47 @@ +# Copyright (C) 2007 Free Software Foundation, Inc. + +# 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 . + +# Please email any bugs, comments, and/or additions to this file to: +# bug-gdb@gnu.org + +# This file is part of the gdb testsuite. + +# Test G++ has compiled debuginfo without a C++ '&' reference where it should +# not be. GCC Bug 33537. + +if $tracelevel then { + strace $tracelevel +} + +if { [skip_cplus_tests] } { continue } + +set prms_id 0 +set bug_id 0 + +set testfile "arg-reference" +set srcfile ${testfile}.cc +set binfile ${objdir}/${subdir}/${testfile} + +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } { + untested ${testfile}.exp + return -1 +} + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load ${binfile} + +gdb_test "ptype foo" "type = int \\\(Obj\\\)" "No false reference" -- 2.39.2