aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>2000-10-09 14:04:58 -0700
committerRichard Henderson <rth@gcc.gnu.org>2000-10-09 14:04:58 -0700
commit3734420fe1abfd0cbe626423a5a4a2b7046e733b (patch)
treec0976bff9c12566f60cbe4510ca7382831d96c66
parent80c0f62c94a60f0815e71d8d9092aeba6f3c8845 (diff)
downloadgcc-3734420fe1abfd0cbe626423a5a4a2b7046e733b.zip
gcc-3734420fe1abfd0cbe626423a5a4a2b7046e733b.tar.gz
gcc-3734420fe1abfd0cbe626423a5a4a2b7046e733b.tar.bz2
pure.cc: New file.
* libsupc++/pure.cc: New file. * libsupc++/Makefile.am (INCLUDES): Add top_builddir. (sources): Add pure.cc. * libsupc++/Makefile.in: Regenerate. From-SVN: r36815
-rw-r--r--libstdc++-v3/ChangeLog7
-rw-r--r--libstdc++-v3/libsupc++/Makefile.am3
-rw-r--r--libstdc++-v3/libsupc++/Makefile.in8
-rw-r--r--libstdc++-v3/libsupc++/pure.cc27
4 files changed, 40 insertions, 5 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 2e7c344..b2d9121 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,10 @@
+2000-10-09 Richard Henderson <rth@cygnus.com>
+
+ * libsupc++/pure.cc: New file.
+ * libsupc++/Makefile.am (INCLUDES): Add top_builddir.
+ (sources): Add pure.cc.
+ * libsupc++/Makefile.in: Regenerate.
+
2000-10-09 Benjamin Kosnik <bkoz@purist.soma.redhat.com>
* docs/configopts.html: Edit.
diff --git a/libstdc++-v3/libsupc++/Makefile.am b/libstdc++-v3/libsupc++/Makefile.am
index 8769356..fe6ecea 100644
--- a/libstdc++-v3/libsupc++/Makefile.am
+++ b/libstdc++-v3/libsupc++/Makefile.am
@@ -47,7 +47,7 @@ LIBSUPCXX_INCLUDES = -I$(top_srcdir)/libsupc++/include
INCLUDES = \
-I$(top_srcdir)/../gcc -I$(top_srcdir)/../include \
$(LIBSUPCXX_INCLUDES) -I$(GLIBCPP_INCLUDES) \
- $(CONFIG_INCLUDES)
+ $(CONFIG_INCLUDES) -I$(top_builddir)
headers = \
include/cxxabi.h \
@@ -67,6 +67,7 @@ sources = \
new_opnt.cc \
new_opv.cc \
new_opvnt.cc \
+ pure.cc \
tinfo.cc \
tinfo2.cc \
vec.cc
diff --git a/libstdc++-v3/libsupc++/Makefile.in b/libstdc++-v3/libsupc++/Makefile.in
index 526843b..4a71cdb 100644
--- a/libstdc++-v3/libsupc++/Makefile.in
+++ b/libstdc++-v3/libsupc++/Makefile.in
@@ -115,13 +115,13 @@ noinst_LTLIBRARIES = libsupc++convenience.la
LIBSUPCXX_INCLUDES = -I$(top_srcdir)/libsupc++/include
-INCLUDES = -I$(top_srcdir)/../gcc -I$(top_srcdir)/../include $(LIBSUPCXX_INCLUDES) -I$(GLIBCPP_INCLUDES) $(CONFIG_INCLUDES)
+INCLUDES = -I$(top_srcdir)/../gcc -I$(top_srcdir)/../include $(LIBSUPCXX_INCLUDES) -I$(GLIBCPP_INCLUDES) $(CONFIG_INCLUDES) -I$(top_builddir)
headers = include/cxxabi.h include/exception include/new include/new.h include/typeinfo
-sources = del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc exception.cc new_handler.cc new_op.cc new_opnt.cc new_opv.cc new_opvnt.cc tinfo.cc tinfo2.cc vec.cc
+sources = del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc exception.cc new_handler.cc new_op.cc new_opnt.cc new_opv.cc new_opvnt.cc pure.cc tinfo.cc tinfo2.cc vec.cc
libsupc___la_SOURCES = $(sources)
@@ -169,12 +169,12 @@ libsupc__convenience_la_LDFLAGS =
libsupc__convenience_la_LIBADD =
libsupc__convenience_la_OBJECTS = del_op.lo del_opnt.lo del_opv.lo \
del_opvnt.lo exception.lo new_handler.lo new_op.lo new_opnt.lo \
-new_opv.lo new_opvnt.lo tinfo.lo tinfo2.lo vec.lo
+new_opv.lo new_opvnt.lo pure.lo tinfo.lo tinfo2.lo vec.lo
libsupc___la_LDFLAGS =
libsupc___la_LIBADD =
libsupc___la_OBJECTS = del_op.lo del_opnt.lo del_opv.lo del_opvnt.lo \
exception.lo new_handler.lo new_op.lo new_opnt.lo new_opv.lo \
-new_opvnt.lo tinfo.lo tinfo2.lo vec.lo
+new_opvnt.lo pure.lo tinfo.lo tinfo2.lo vec.lo
CXXFLAGS = @CXXFLAGS@
CXXLD = $(CXX)
DIST_COMMON = Makefile.am Makefile.in configure configure.in
diff --git a/libstdc++-v3/libsupc++/pure.cc b/libstdc++-v3/libsupc++/pure.cc
new file mode 100644
index 0000000..56e2f06
--- /dev/null
+++ b/libstdc++-v3/libsupc++/pure.cc
@@ -0,0 +1,27 @@
+#include <bits/c++config.h>
+
+#ifdef _GLIBCPP_HAVE_UNISTD_H
+#include <unistd.h>
+#define writestr(str) write(2, str, sizeof(str) - 1)
+#ifdef __GNU_LIBRARY__
+ /* Avoid forcing the library's meaning of `write' on the user program
+ by using the "internal" name (for use within the library). */
+#define write(fd, buf, n) __write((fd), (buf), (n))
+#endif
+#else
+#include <stdio.h>
+#define writestr(str) fputs(str, stderr)
+#endif
+
+extern "C" {
+
+extern void __terminate(void) __attribute__ ((__noreturn__));
+
+void
+__pure_virtual (void)
+{
+ writestr ("pure virtual method called\n");
+ __terminate ();
+}
+
+}