diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2000-04-10 16:21:28 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2000-04-10 16:21:28 +0000 |
commit | 6d61f400fd019ac06026d7aaa412e076096a7d37 (patch) | |
tree | 3768b8d8cee3530ee2196a4ce4071d1941cdee6e /gcc/cp/inc | |
parent | 4b7ee6157ab47830d9b198c2f968dbef9388e768 (diff) | |
download | gcc-6d61f400fd019ac06026d7aaa412e076096a7d37.zip gcc-6d61f400fd019ac06026d7aaa412e076096a7d37.tar.gz gcc-6d61f400fd019ac06026d7aaa412e076096a7d37.tar.bz2 |
cxxabi.h (__pointer_type_info): Add restrict and incomplete flags.
* inc/cxxabi.h (__pointer_type_info): Add restrict and
incomplete flags.
(__pointer_type_info::__pointer_catch): New virtual function.
(__pointer_to_member_type_info): Derive from
__pointer_type_info. Adjust.
(__pointer_to_member_type_info::__do_catch): Remove.
(__pointer_to_member_type_info::__is_pointer_p): Declare.
(__pointer_to_member_type_info::__pointer_catch): Declare.
* rtti.c (qualifier_flags): Add restrict flag.
(ptmd_initializer): Reorder members.
(create_tinfo_types): Expand comments. Reorder
ptmd_desc_type_node members.
* tinfo2.cc (__pointer_to_member_type_info::__is_pointer_p):
Implement.
(__pointer_type_info::__do_catch): Move specific code into
__pointer_catch. Call it.
(__pointer_type_info::__pointer_catch): Non-pointer-to-member
specific catch checking. Fix void conversion check.
(__pointer_to_member_type_info::__do_catch): Remove.
(__pointer_to_member_type_info::__pointer_catch): Implement.
From-SVN: r33061
Diffstat (limited to 'gcc/cp/inc')
-rw-r--r-- | gcc/cp/inc/cxxabi.h | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/gcc/cp/inc/cxxabi.h b/gcc/cp/inc/cxxabi.h index 66a6607..a40482c 100644 --- a/gcc/cp/inc/cxxabi.h +++ b/gcc/cp/inc/cxxabi.h @@ -64,15 +64,22 @@ public: public: enum quals_masks { const_mask = 0x1, - volatile_mask = 0x2 + volatile_mask = 0x2, + restrict_mask = 0x4, + incomplete_mask = 0x8 }; /* implementation defined member functions */ protected: virtual bool __is_pointer_p () const; protected: - virtual bool __do_catch (const std::type_info *__thr_type, void **__thr_obj, + virtual bool __do_catch (const std::type_info *__thr_type, + void **__thr_obj, unsigned __outer) const; +protected: + virtual bool __pointer_catch (const __pointer_type_info *__thr_type, + void **__thr_obj, + unsigned __outer) const; }; /* type information for array objects */ @@ -120,36 +127,30 @@ public: /* type information for a pointer to member variable (not function) */ class __pointer_to_member_type_info - : public std::type_info + : public __pointer_type_info { /* abi defined member variables */ public: const __class_type_info *klass; /* class of the member */ - const std::type_info *type; /* type of the pointed to member */ - int quals; /* qualifications of the pointed to type */ /* abi defined member functions */ public: virtual ~__pointer_to_member_type_info (); public: explicit __pointer_to_member_type_info (const char *__n, - const __class_type_info *__klass, + int __quals, const std::type_info *__type, - int __quals) - : std::type_info (__n), klass (__klass), type (__type), quals (__quals) + const __class_type_info *__klass) + : __pointer_type_info (__n, __quals, __type), klass (__klass) { } -/* implementation defined types */ -public: - enum quals_masks { - const_mask = 0x1, - volatile_mask = 0x2 - }; - /* implementation defined member functions */ protected: - virtual bool __do_catch (const std::type_info *__thr_type, void **__thr_obj, - unsigned __outer) const; + virtual bool __is_pointer_p () const; +protected: + virtual bool __pointer_catch (const __pointer_type_info *__thr_type, + void **__thr_obj, + unsigned __outer) const; }; class __class_type_info; |