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 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



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