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