From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12734 invoked by alias); 7 Sep 2003 21:17:57 -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 12661 invoked from network); 7 Sep 2003 21:17:54 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 7 Sep 2003 21:17:54 -0000 Received: from int-mx2.corp.redhat.com (nat-pool-rdu-dmz.redhat.com [172.16.52.200]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id h87LHrl24785 for ; Sun, 7 Sep 2003 17:17:53 -0400 Received: from potter.sfbay.redhat.com (potter.sfbay.redhat.com [172.16.27.15]) by int-mx2.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h87LHoL30395; Sun, 7 Sep 2003 17:17:50 -0400 Received: from dot.sfbay.redhat.com (dot.sfbay.redhat.com [172.16.24.7]) by potter.sfbay.redhat.com (8.11.6/8.11.6) with ESMTP id h87LHnw10061; Sun, 7 Sep 2003 14:17:50 -0700 Received: (from rth@localhost) by dot.sfbay.redhat.com (8.11.6/8.11.6) id h87LHnV14438; Sun, 7 Sep 2003 14:17:49 -0700 X-Authentication-Warning: dot.sfbay.redhat.com: rth set sender to rth@redhat.com using -f Date: Sun, 07 Sep 2003 21:17:00 -0000 From: Richard Henderson To: Andrew Cagney Cc: gdb-patches@sources.redhat.com Subject: Re: [rfa/6.0] Better handle unspecified CFI values Message-ID: <20030907211748.GA14431@redhat.com> References: <3F593115.4030407@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3F593115.4030407@redhat.com> User-Agent: Mutt/1.4i X-SW-Source: 2003-09/txt/msg00102.txt.bz2 On Fri, Sep 05, 2003 at 08:57:57PM -0400, Andrew Cagney wrote: > + /* Can things get worse? Yep! One of the registers GCC > + forgot to provide unwind information for was the stack > + pointer. Outch! GCC appears to assumes that the CFA > + address can be used - after all it points to the inner > + most address of the previous frame before the function > + call and that's always the same as the stack pointer on > + return, right? Yes, gcc does assume the CFA can be used, except when there is a CFI entry for the stack pointer. See s390 for this case. > Wrong. See GCC's i386 STDCALL option for > + an ABI that has a different entry and return stack Indeed, this is a problem. Please file a gcc pr for this. We should be generating an entry for the stack pointer in this case. We probably don't see the bug in gcc's unwinding for exception handling because we also apply the fixup for DW_CFA_GNU_args_size, since we're not unwinding to the call site exactly, but rather to the handler within the function. r~