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

Wolfgang Bangerth bangerth@ticam.utexas.edu
Thu Nov 21 17:52:00 GMT 2002


The following reply was made to PR c++/8047; it has been noted by GNATS.

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

 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
 
 -------------------------------------------------------------------------
 Wolfgang Bangerth              email:           bangerth@ticam.utexas.edu
                                www: http://www.ticam.utexas.edu/~bangerth
 
 



More information about the Gcc-prs mailing list