From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13971 invoked by alias); 24 Nov 2004 20:43:21 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 13686 invoked from network); 24 Nov 2004 20:42:46 -0000 Received: from unknown (HELO smtp1.clear.net.nz) (203.97.33.27) by sourceware.org with SMTP; 24 Nov 2004 20:42:46 -0000 Received: from DANNY (t001-m001-u66.acld.clear.net.nz [203.97.72.66]) by smtp1.clear.net.nz (CLEAR Net Mail) with SMTP id <0I7P00JHAAV719@smtp1.clear.net.nz> for gcc@gcc.gnu.org; Thu, 25 Nov 2004 09:42:45 +1300 (NZDT) Date: Wed, 24 Nov 2004 21:23:00 -0000 From: Danny Smith Subject: Re: stdcall lib functions with exception throwing callbacks vs Dwarf2 EH To: Richard Henderson Cc: gcc@gcc.gnu.org Reply-to: Danny Smith Message-id: <000b01c4d265$e13c1ec0$424861cb@DANNY> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-1 Content-transfer-encoding: 7bit References: <001701c4d1ab$949322e0$0a6d65da@DANNY> <20041124003240.GA6028@redhat.com> <000401c4d1fd$112d9eb0$8c4861cb@DANNY> <20041124184427.GA5485@redhat.com> X-SW-Source: 2004-11/txt/msg00923.txt.bz2 Richard Henderson wrote: > I reproduced this specific failure on linux, and the following seems > to fix the problem. Can you give it a go with whatever more complex > test case you have? > > > r~ > > > * dwarf2out.c (dwarf2out_stack_adjust): Add after_p argument. Save > args_size adjustments for calls even with cfa as stack pointer. > Search calls for stack adjustments after the insn is issued. > (dwarf2out_frame_debug): Add after_p argument; pass it on. > * dwarf2out.h (dwarf2out_frame_debug): Update to match. > * final.c (final_start_function, final_scan_insn): Likewise. > Yes it fixes the stdcall testcases. Out of curiosity I checked to see if it affected http://gcc.gnu.org/bugzilla/show_bug.cgi?id=6764 which, although closed, has been on-again/off-again with DW2 on windows. The -mno-accumulate-outgoing-args -fomit-frame-pointer combination results in abnormal termination with (and without) your patch and the testcase in that PR. Danny