OSDN Git Service

* Fix for g++/15861
[pf3gnuchains/gcc-fork.git] / boehm-gc / gc_cpp.cc
index a97091c..f8b803a 100644 (file)
@@ -26,15 +26,13 @@ Authors: John R. Ellis and Jesse Hull
 
 #include "gc_cpp.h"
 
-#ifndef _MSC_VER
-/* In the Visual C++ case, we moved this into the header. */
 void* operator new( size_t size ) {
     return GC_MALLOC_UNCOLLECTABLE( size );}
   
 void operator delete( void* obj ) {
     GC_FREE( obj );}
   
-#ifdef OPERATOR_NEW_ARRAY
+#ifdef GC_OPERATOR_NEW_ARRAY
 
 void* operator new[]( size_t size ) {
     return GC_MALLOC_UNCOLLECTABLE( size );}
@@ -42,8 +40,22 @@ void* operator new[]( size_t size ) {
 void operator delete[]( void* obj ) {
     GC_FREE( obj );}
 
-#endif /* OPERATOR_NEW_ARRAY */
+#endif /* GC_OPERATOR_NEW_ARRAY */
 
-#endif /* _MSC_VER */
+#ifdef _MSC_VER
+
+// This new operator is used by VC++ in case of Debug builds !
+void* operator new( size_t size,
+                         int ,//nBlockUse,
+                         const char * szFileName,
+                         int nLine )
+{
+#ifndef GC_DEBUG
+       return GC_malloc_uncollectable( size );
+#else
+       return GC_debug_malloc_uncollectable(size, szFileName, nLine);
+#endif
+}
 
+#endif /* _MSC_VER */