The attached example causes abort() on SLES11 (IA64). This example comes from a test suite that checks operator new in various situations. According to the execution results of these tests, it seems to me that the problem is somewhere in "throw;" operator inside NewHandlerBox::new_handler_box() method, which is called as new_handler when new operator fails to allocate memory.
Unfortunately I have no direct access to the machine with this configuration (SLES11 installed on IA64 architecture), so I couldn't prepare a shorter example program. For now, I can't say which parts of the program are essential to reproduce the problem and which ones are not. However, in a very simple example the problem wasn't reproduced. Also, the mentioned test suite was executed on many other machines with different OSes and architectures, but the problem have not arisen there so far. -- Summary: Inside new_handler "throw;" operator may cause abort Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tsyvarev at ispras dot ru http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40606