--- /dev/null
+// Test whether N::operator new is different from ::operator new
+#include <new>
+#include <cstdlib>
+
+bool success;
+
+namespace N{
+ void* operator new(size_t n){
+ success = true;
+ return std::malloc(n);
+ }
+}
+
+void *operator new(size_t n)throw(std::bad_alloc)
+{
+ static bool entered = false;
+ if(entered)
+ throw std::bad_alloc();
+ entered = true;
+ void *result = N::operator new(n);
+ entered = false;
+ return result;
+}
+
+int main()
+{
+ try{
+ new int;
+ }catch(...){
+ return 1;
+ }
+ return success?0:1;
+}