Farid Zaripov wrote:
-----Original Message-----
From: Martin Sebor [mailto:[EMAIL PROTECTED] Sent: Friday, July 13, 2007 5:57 PM
To: stdcxx-dev@incubator.apache.org
Subject: Re: svn commit: r553587 - /incubator/stdcxx/trunk/tests/self/0.new.cpp

To continue the execution and check another testcases the SIGSEGV signal should be handled.
But the SIGSEGV indicates an error, while SIGABRT indicates the expected behavior. I.e., the replacement operator delete defined in the driver aborts when it's passed a pointer that wasn't returned from a prior call to the matching operator new. The operator should never segfault. Is the replacement operator not being called?

  No, because of _config-msvcrt.h, line 151:

   // operator new and delete is not reliably replaceable across
   // shared library boundaries, which includes the shared library
   // version of the language support library
#define _RWSTD_NO_REPLACEABLE_NEW_DELETE

  Shall we install SIGSEGV signal handler only if
_RWSTD_NO_REPLACEABLE_NEW_DELETE macro is #defined ?

Right. Then the test for the replacement operator new should be
guarded by the macro, shouldn't it?

Martin

Reply via email to