From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24959 invoked by alias); 1 Nov 2007 17:14:54 -0000 Received: (qmail 24933 invoked by uid 22791); 1 Nov 2007 17:14:53 -0000 X-Spam-Check-By: sourceware.org Received: from pauline.vellum.cz (HELO pauline.vellum.cz) (89.250.243.234) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 01 Nov 2007 17:14:48 +0000 Received: from host0.dyn.jankratochvil.net (localhost.localdomain [127.0.0.1]) by pauline.vellum.cz (8.12.11.20060308/8.12.11) with ESMTP id lA1HEhxD016115 for ; Thu, 1 Nov 2007 18:14:44 +0100 Received: from host0.dyn.jankratochvil.net (localhost [127.0.0.1]) by host0.dyn.jankratochvil.net (8.14.1/8.14.1) with ESMTP id lA1HEh9A026533 for ; Thu, 1 Nov 2007 18:14:43 +0100 Received: (from jkratoch@localhost) by host0.dyn.jankratochvil.net (8.14.1/8.14.1/Submit) id lA1HEgti026532 for gdb-patches@sourceware.org; Thu, 1 Nov 2007 18:14:42 +0100 Date: Thu, 01 Nov 2007 17:14:00 -0000 From: Jan Kratochvil To: gdb-patches@sourceware.org Subject: [patch] New testcase for GCC false C++ references Message-ID: <20071101171442.GA26523@host0.dyn.jankratochvil.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="ZPt4rx8FFjLCG7dd" Content-Disposition: inline User-Agent: Mutt/1.5.16 (2007-06-09) X-IsSubscribed: yes 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 X-SW-Source: 2007-11/txt/msg00013.txt.bz2 --ZPt4rx8FFjLCG7dd Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-length: 308 Hi, It tests GCC compiled right (and GDB decoded right) int foo (Obj arg); formerly false debuginfo encoded as: int foo (Obj &arg); Submitted at: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33537 Still GDB wrongly does not create a copy and modified the ARG value durin (gdb) p foo(obj) Regards, Jan --ZPt4rx8FFjLCG7dd Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename="arg-referefence.patch" Content-length: 2919 2007-11-01 Jan Kratochvil * gdb.cp/arg-reference.exp, gdb.cp/arg-reference.c: New files. --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ ./gdb/testsuite/gdb.cp/arg-reference.cc 1 Nov 2007 17:10:40 -0000 @@ -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 () +{ +} --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ ./gdb/testsuite/gdb.cp/arg-reference.exp 1 Nov 2007 17:10:40 -0000 @@ -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" --ZPt4rx8FFjLCG7dd--