This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: c++/8047: [i386] Stack corruption with exceptions


I have just tried this with i386-mingw32 (GCC3.3) with same result: Okay with
march=i686, stack exhaustion with  i[345]86.  However, if add
-maccumulate-ougoing-args, the stack is okay with default  -march=i386

Ditto with cygwin


Coincidentally, in mingw and cygwin, functions that call a __stdcall function
(callee pops stack) show stack corruption with exceptions when compiled with
-fomit-frame-pointer, but are okay with -fomit-frame-pointer
-maccumulate-outgoing-args. 

Also, perhaps related is PR6764, which still fails on mingw with --march=i386
but not with -march=i686 or -maccumulate-outgoing-args 

Danny


Re: c++/8047: [i386] Stack corruption with exceptions
From: Wolfgang Bangerth <bangerth at ticam dot utexas dot edu> 
To: gcc-gnats at gcc dot gnu dot org, <gcc-bugs at gcc dot gnu dot org> 
Date: Fri, 15 Nov 2002 18:31:44 -0600 (CST) 
Subject: Re: c++/8047: [i386] Stack corruption with exceptions 

--------------------------------------------------------------------------------

I just looked at this report. A reduced testcase is this:
-----------------------------------
struct auto_ptr {
    auto_ptr(int) { }
};

int foo() { throw 5; }

int main()
{
  label:
  try {
    auto_ptr x(foo());
  }
  catch (...)
    {
    }

  goto label;
}
----------------------------------

On closer examination, I believe this to be actually a stack corruption 
bug, because if I put a breakpoint into the loop, I can see how the stack 
pointer is decreased by 8 bytes in each iteration, which eventually leads 
to the program running out of space. Note that this behavior requires that 
you use -march=386, using i686 does not trigger the problem.

Regards
 Wolfgang




http://careers.yahoo.com.au - Yahoo! Careers
- 1,000's of jobs waiting online for you!


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]