summaryrefslogtreecommitdiff
path: root/src/typeinfo
diff options
context:
space:
mode:
authorDavid Chisnall <dchisnall@pathscale.com>2012-03-20 16:56:14 +0000
committerDavid Chisnall <dchisnall@pathscale.com>2012-03-20 16:56:14 +0000
commitcddcf8734ed06ada9384a461bc21d58b44f6eba1 (patch)
tree05f0ee42205622cb4851edc2dcce576708f68739 /src/typeinfo
parenta35d8de85ffd4df32e2dc47fa539d61fd3024a54 (diff)
downloadlibcxxrt-cddcf8734ed06ada9384a461bc21d58b44f6eba1.tar.gz
libcxxrt-cddcf8734ed06ada9384a461bc21d58b44f6eba1.tar.bz2
libcxxrt-cddcf8734ed06ada9384a461bc21d58b44f6eba1.tar.xz
Rework exception matching.
- Remove typeinfo since thing break if the compiler decides to use the system one and merge its contents into typeinfo.h - Make each type_info object have a vtable with the same layout as the public vtable in libstdc++'s <typeinfo>. This fixes code (e.g. libobjc2's Objective-C++ exception handling) which rely on being able to add new types. - Add some extra tests I suspect exceptions catching pointer-to-member types will not work correctly, but I've never seen anyone do this and don't have any tests for it.
Diffstat (limited to 'src/typeinfo')
-rw-r--r--src/typeinfo26
1 files changed, 0 insertions, 26 deletions
diff --git a/src/typeinfo b/src/typeinfo
deleted file mode 100644
index 74e77ae..0000000
--- a/src/typeinfo
+++ /dev/null
@@ -1,26 +0,0 @@
-namespace std
-{
- /**
- * Standard type info class. The layout of this class is specified by the
- * ABI.
- */
- class type_info
- {
- public:
- /**
- * Virtual destructor. This class must have one virtual function to
- * ensure that it has a vtable.
- */
- virtual ~type_info();
- bool operator==(const type_info &) const;
- bool operator!=(const type_info &) const;
- bool before(const type_info &) const;
- const char* name() const;
- type_info();
- private:
- type_info(const type_info& rhs);
- type_info& operator= (const type_info& rhs);
- const char *__type_name;
- };
-}
-