Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2002-12-04 23:36:23 +0300
committerCorinna Vinschen <corinna@vinschen.de>2002-12-04 23:36:23 +0300
commit7453997e0e4f7fa169bfc3ada828834f89f5b38a (patch)
tree9d98322e385606b1bb2b5bab132f0702b70d2859 /winsup/cygwin/cxx.cc
parent94f860c030b8033baab66e30c2928002e3a1f17e (diff)
* cxx.cc: New file. Implement new, new[], delete and delete[]
operators and __cxa_pure_virtual if compiled by gcc >=3. * Makefile.in (DLL_OFILES): Add cxx.o. Remove libstdc++.a from cygwin1.dll link step.
Diffstat (limited to 'winsup/cygwin/cxx.cc')
-rw-r--r--winsup/cygwin/cxx.cc49
1 files changed, 49 insertions, 0 deletions
diff --git a/winsup/cygwin/cxx.cc b/winsup/cygwin/cxx.cc
new file mode 100644
index 000000000..b52485a20
--- /dev/null
+++ b/winsup/cygwin/cxx.cc
@@ -0,0 +1,49 @@
+/* cxx.cc
+
+ Copyright 2002 Red Hat, Inc.
+
+This file is part of Cygwin.
+
+This software is a copyrighted work licensed under the terms of the
+Cygwin license. Please consult the file "CYGWIN_LICENSE" for
+details. */
+
+#if (__GNUC__ >= 3)
+
+#include "winsup.h"
+#include <stdlib.h>
+
+void *
+operator new (size_t s)
+{
+ void *p = malloc (s);
+ if (p)
+ memset (p,0,s);
+ return p;
+}
+
+void
+operator delete (void *p)
+{
+ free (p);
+}
+
+void *
+operator new[] (size_t s)
+{
+ return ::operator new (s);
+}
+
+void
+operator delete[] (void *p)
+{
+ ::operator delete (p);
+}
+
+extern "C" void
+__cxa_pure_virtual (void)
+{
+ api_fatal ("pure virtual method called");
+}
+
+#endif