From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10559 invoked by alias); 13 Oct 2004 10:14:52 -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 10552 invoked from network); 13 Oct 2004 10:14:50 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 13 Oct 2004 10:14:50 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11/8.12.10) with ESMTP id i9DAEoV7018710 for ; Wed, 13 Oct 2004 06:14:50 -0400 Received: from potter.sfbay.redhat.com (potter.sfbay.redhat.com [172.16.27.15]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i9DAEnr03505 for ; Wed, 13 Oct 2004 06:14:49 -0400 Received: from cygbert.vinschen.de (vpn50-25.rdu.redhat.com [172.16.50.25]) by potter.sfbay.redhat.com (8.12.8/8.12.8) with ESMTP id i9DAEl0O018868 for ; Wed, 13 Oct 2004 06:14:48 -0400 Received: by cygbert.vinschen.de (Postfix, from userid 500) id 0B49D58090; Wed, 13 Oct 2004 12:15:47 +0200 (CEST) Date: Wed, 13 Oct 2004 10:14:00 -0000 From: Corinna Vinschen To: gdb-patches@sources.redhat.com Subject: Re: [RFA] Change gdbarch_return_value to take function type instead of return value type Message-ID: <20041013101547.GF18268@cygbert.vinschen.de> Reply-To: gdb-patches@sources.redhat.com Mail-Followup-To: gdb-patches@sources.redhat.com References: <20041012124916.GZ6702@cygbert.vinschen.de> <200410122215.i9CMFcfN003173@elgar.sibelius.xs4all.nl> <20041013093144.GE18268@cygbert.vinschen.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20041013093144.GE18268@cygbert.vinschen.de> User-Agent: Mutt/1.4.2i X-SW-Source: 2004-10/txt/msg00226.txt.bz2 On Oct 13 11:31, Corinna Vinschen wrote: > Otherwise, thanks for approving the patch, I'll check it in in a few minutes. No, I won't. I found that my patch missed the calls of using_struct_return in eval.c. These calls only happen in case of a OP_OBJC_MSGCALL operation. At line 841 in eval.c, in function evaluate_subexp_standard() I found this: /* If we found a method with symbol information, check to see if it returns a struct. Otherwise assume it doesn't. */ if (method) { [...] struct_return = using_struct_return (value_type, using_gcc); } else if (expect_type != NULL) { struct_return = using_struct_return (check_typedef (expect_type), using_gcc); } While the `if (method)' branch is simple, the `else if' branch can't be solved easily. evaluate_subexp_standard just gets the expected return type as parameter. Does anybody know how to get around this problem? For now I can only see one way, redefine gdbarch_return_value to get both, function type and return value type. Corinna -- Corinna Vinschen Cygwin Project Co-Leader Red Hat, Inc.