From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21760 invoked by alias); 15 Apr 2002 00:35:06 -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 21751 invoked from network); 15 Apr 2002 00:35:06 -0000 Received: from unknown (HELO localhost.redhat.com) (24.112.240.27) by sources.redhat.com with SMTP; 15 Apr 2002 00:35:06 -0000 Received: from cygnus.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id A7C8E3C3F; Sun, 14 Apr 2002 20:35:07 -0400 (EDT) Message-ID: <3CBA203B.3020306@cygnus.com> Date: Sun, 14 Apr 2002 17:35:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:0.9.9) Gecko/20020328 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Daniel Jacobowitz , Fernando Nasser Cc: gdb-patches@sources.redhat.com Subject: Re: [RFA/testsuite] Complex numbers in C References: <20020320193644.A21454@nevyn.them.org> Content-Type: multipart/mixed; boundary="------------010003020102090803040102" X-SW-Source: 2002-04/txt/msg00513.txt.bz2 This is a multi-part message in MIME format. --------------010003020102090803040102 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-length: 293 FYI, Andrew PS: > +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $options] != "" } { > + # No support for __complex__, presumably. > + unsupported "print complex value in C" > + return 0 > +} Should that be a feature test - like stdio and the like? Andrew --------------010003020102090803040102 Content-Type: message/rfc822; name="mailbox-message://ac131313@movemail/fsf/gdb/patches/sep#1800848" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="mailbox-message://ac131313@movemail/fsf/gdb/patches/sep#1800848" Content-length: 5069 X-Mozilla-Status2: 00000000 Return-Path: Delivered-To: ac131313@localhost.redhat.com Received: from localhost (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 796733EDF for ; Wed, 20 Mar 2002 19:39:46 -0500 (EST) Received: from pop.cygnus.com by localhost with IMAP (fetchmail-5.9.6) for ac131313@localhost (single-drop); Wed, 20 Mar 2002 19:39:46 -0500 (EST) Received: from sources.redhat.com (sources.redhat.com [209.249.29.67]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with SMTP id QAA15945 for ; Wed, 20 Mar 2002 16:38:02 -0800 (PST) Received: (qmail 29005 invoked by alias); 21 Mar 2002 00:36:46 -0000 Received: (qmail 28947 invoked from network); 21 Mar 2002 00:36:43 -0000 Received: from unknown (HELO nevyn.them.org) (128.2.145.6) by sources.redhat.com with SMTP; 21 Mar 2002 00:36:43 -0000 Received: from drow by nevyn.them.org with local (Exim 3.35 #1 (Debian)) id 16nqZQ-0005b0-00 for ; Wed, 20 Mar 2002 19:36:44 -0500 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Delivered-To: mailing list gdb-patches@sources.redhat.com Date: Wed, 20 Mar 2002 19:36:44 -0500 From: Daniel Jacobowitz To: gdb-patches@sources.redhat.com Subject: [RFA/testsuite] Complex numbers in C Message-ID: <20020320193644.A21454@nevyn.them.org> Mail-Followup-To: gdb-patches@sources.redhat.com Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.3.23i Content-Type: text/plain; charset=us-ascii Content-length: 3066 Here's a test for the bug I just fixed. It's got one caveat: I could not, no matter how I searched, find a way to make DejaGNU be quiet if a test fails to compile. This adds one line of gcc error message to the testsuite output if the test didn't build (non-GCC-and-non-C99 compiler will do it, probably). Other caveat was that I don't remember if we agreed to use unsupported in this case or not. [As a side note, I'm trying to design a gcc.dg-like framework for GDB. I shouldn't need to write TCL for a test this simple, with a small testcase, and there are a lot of this sort of test that we could use.] -- Daniel Jacobowitz Carnegie Mellon University MontaVista Software Debian GNU/Linux Developer 2002-03-20 Daniel Jacobowitz * gdb.base/complex.c: New file. * gdb.base/complex.exp: New file. --- /dev/null Wed Dec 31 19:00:00 1969 +++ gdb/testsuite/gdb.base/complex.c Wed Mar 20 19:30:16 2002 @@ -0,0 +1,29 @@ +/* Test taken from GCC. Verify that we can print a structure containing + a complex number. */ + +typedef __complex__ float cf; +struct x { char c; cf f; } __attribute__ ((__packed__)); +extern void f2 (struct x*); +extern void f1 (void); +int +main (void) +{ + f1 (); + exit (0); +} + +void +f1 (void) +{ + struct x s; + s.f = 1; + s.c = 42; + f2 (&s); +} + +void +f2 (struct x *y) +{ + if (y->f != 1 || y->c != 42) + abort (); +} --- /dev/null Wed Dec 31 19:00:00 1969 +++ gdb/testsuite/gdb.base/complex.exp Wed Mar 20 19:32:32 2002 @@ -0,0 +1,49 @@ +# Copyright 2002 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 2 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-gdb@prep.ai.mit.edu + +if $tracelevel then { + strace $tracelevel +} + +set bug_id 0 + +set testfile complex +set srcfile ${testfile}.c +set binfile ${objdir}/${subdir}/${testfile} +set options debug + +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $options] != "" } { + # No support for __complex__, presumably. + unsupported "print complex value in C" + return 0 +} + +# Start with a fresh gdb. + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load $binfile + +if [runto f2] then { + gdb_test "p *y" "\\\$\[0-9\]* = \{c = 42 '\\*', f = 1 \\+ 0 \\* I\}" \ + "print complex value in C" +} + +return 0 --------------010003020102090803040102--