From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15472 invoked by alias); 16 Apr 2003 22:06:15 -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 15461 invoked from network); 16 Apr 2003 22:06:15 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 16 Apr 2003 22:06:15 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id h3GM6FD04743 for ; Wed, 16 Apr 2003 18:06:15 -0400 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [172.16.52.156]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h3GM6Eq18514 for ; Wed, 16 Apr 2003 18:06:14 -0400 Received: from localhost.redhat.com (romulus-int.sfbay.redhat.com [172.16.27.46]) by pobox.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h3GM6Ek07077 for ; Wed, 16 Apr 2003 18:06:14 -0400 Received: by localhost.redhat.com (Postfix, from userid 469) id 97D082C43E; Wed, 16 Apr 2003 18:10:43 -0400 (EDT) From: Elena Zannoni MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <16029.54499.392215.696866@localhost.redhat.com> Date: Wed, 16 Apr 2003 22:06:00 -0000 To: gdb-patches@sources.redhat.com Subject: [RFA] values.c: don't fetch func void return value X-SW-Source: 2003-04/txt/msg00332.txt.bz2 While debugging the x86-64 I noticed that there were problems because gdb was trying to extract a void return value from a function. It already has set up the value structure with all the correct fields, it seems a waste to go and ask the target for a value if we know there isn't one. No regressions on x86. 2003-04-16 Elena Zannoni * values.c (value_being_returned): Don't fetch the return value if the return type is void. Index: values.c =================================================================== RCS file: /cvs/uberbaum/gdb/values.c,v retrieving revision 1.47 diff -u -p -r1.47 values.c --- values.c 20 Feb 2003 00:01:07 -0000 1.47 +++ values.c 16 Apr 2003 21:29:19 -0000 @@ -1240,7 +1240,9 @@ value_being_returned (struct type *valty val = allocate_value (valtype); CHECK_TYPEDEF (valtype); - EXTRACT_RETURN_VALUE (valtype, retbuf, VALUE_CONTENTS_RAW (val)); + /* If the function returns void, don't bother fetching the return value. */ + if (TYPE_CODE (valtype) != TYPE_CODE_VOID) + EXTRACT_RETURN_VALUE (valtype, retbuf, VALUE_CONTENTS_RAW (val)); return val; }