1. 05 Jan, 2015 1 commit
  2. 02 Jan, 2014 1 commit
  3. 03 Feb, 2013 1 commit
  4. 06 Dec, 2011 1 commit
    • re PR libstdc++/51438 (std::exception and derived classes are not compatible… · 8535715d
      re PR libstdc++/51438 (std::exception and derived classes are not compatible with std::nested_exception and C++11 in general)
      
      2011-12-06  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR libstdc++/51438
      	* libsupc++/nested_exception.h (nested_exception::~nested_exception):
      	Declare noexcept.
      	* libsupc++/nested_exception.cc: Adjust.
      	* testsuite/18_support/nested_exception/51438.cc: New.
      	* testsuite/18_support/nested_exception/throw_with_nested.cc: Adjust.
      	* testsuite/18_support/nested_exception/rethrow_if_nested.cc:
      	Likewise.
      
      	* src/shared_ptr.cc: Use noexcept where appropriate.
      	* include/std/system_error: Likewise.
      	* include/std/functional: Likewise.
      	* include/bits/shared_ptr_base.h: Likewise.
      	* src/stdexcept.cc: Use _GLIBCXX_USE_NOEXCEPT where appropriate.
      	* include/std/stdexcept: Likewise.
      	* libsupc++/bad_cast.cc: Likewise.
      	* libsupc++/bad_typeid.cc: Likewise.
      	* libsupc++/eh_exception.cc: Likewise.
      	* libsupc++/typeinfo: Likewise.
      	* libsupc++/exception: Likewise.
      	* libsupc++/eh_ptr.cc: Likewise.
      	* libsupc++/bad_alloc.cc: Likewise.
      	* libsupc++/exception_ptr.h: Likewise.
      
      	* include/std/chrono: Use noexcept where appropriate.
      	* src/chrono.cc: Likewise.
      
      From-SVN: r182064
      Paolo Carlini committed
  5. 09 Apr, 2009 1 commit
  6. 18 Mar, 2007 1 commit
    • array_type_info.cc: Likewise. · bd994a48
      	* libsupc++/array_type_info.cc: Likewise.
      	* libsupc++/bad_cast.cc: Likewise.
      	* libsupc++/bad_typeid.cc: Likewise.
      	* libsupc++/class_type_info.cc: Likewise.
      	* libsupc++/dyncast.cc: Likewise.
      	* libsupc++/enum_type_info.cc: Likewise.
      	* libsupc++/function_type_info.cc: Likewise.
      	* libsupc++/fundamental_type_info.cc: Likewise.
      	* libsupc++/pbase_type_info.cc: Likewise.
      	* libsupc++/pmem_type_info.cc: Likewise.
      	* libsupc++/pointer_type_info.cc: Likewise.
      	* libsupc++/si_class_type_info.cc: Likewise.
      	* libsupc++/vmi_class_type_info.cc: Likewise.
      	* libsupc++/tinfo.h: Move inline type_info functions here.
      	* libsupc++/tinfo.cc: Separate type_info classes into their own
      	files.
      	* libsupc++/tinfo2.cc: Likewise.
      	* Makefile.am (sources): Mention new files.
      	* Makefile.in: Regenerated.
      
      From-SVN: r123042
      Mark Mitchell committed
  7. 17 Aug, 2005 1 commit
  8. 06 May, 2004 1 commit
  9. 16 Jan, 2002 1 commit
    • signbitl.c: Copyright years as list, not range. · aefb3380
      2002-01-16  Benjamin Kosnik  <bkoz@redhat.com>
      
      	* libmath/signbitl.c: Copyright years as list, not range.
      	* libmath/Makefile.am: Same.
      	* libmath/Makefie.in: Regenerate.
      	* libmath/signbit.c: Same.
      	* libmath/nan.c: Same.
      	* libmath/copysignf.c: Same.
      	* libmath/signbitf.c: Same.
      	* testsuite/22_locale/money_get_members_char.cc: Same.
      	* testsuite/22_locale/money_get_members_wchar_t.cc: Same.
      	* testsuite/22_locale/money_put_members_char.cc: Same.
      	* testsuite/22_locale/money_put_members_wchar_t.cc: Same.
      	* testsuite/22_locale/time_get_members_char.cc: Same.
      	* testsuite/22_locale/time_get_members_wchar_t.cc: Same.
      	* testsuite/22_locale/time_put_members_char.cc: Same.
      	* testsuite/22_locale/time_put_members_wchar_t.cc: Same.
      	* testsuite/21_strings/nonmember.cc: Same.
      	* testsuite/21_strings/compare.cc: Same.
      	* testsuite/27_io/stringstream.cc: Same.
      	* testsuite/27_io/stringbuf.cc: Same.
      	* testsuite/27_io/filebuf.cc: Same.
      	* testsuite/27_io/ios_manip_basefield.cc: Same.
      	* testsuite/27_io/ios_manip_fmtflags.cc: Same.
      	* include/bits/cpp_type_traits.h: Same.
      	* include/bits/generic_shadow.h: Same.
      	* include/bits/gslice_array.h: Same.
      	* include/bits/gslice.h: Same.
      	* include/bits/indirect_array.h: Same.
      	* include/bits/slice_array.h: Same.
      	* include/bits/sstream.tcc: Same.
      	* include/bits/streambuf_iterator.h: Same.
      	* include/bits/valarray_array.tcc: Same.
      	* include/bits/valarray_meta.h: Same.
      	* include/bits/valarray_array.h: Same.
      	* config/os/mingw32/bits/ctype_noninline.h: Same.
      	* config/os/mingw32/bits/ctype_base.h: Same.
      	* config/os/hpux/bits/ctype_noninline.h: Same.
      	* config/os/hpux/bits/ctype_base.h: Same.
      	* config/os/gnu-linux/bits/ctype_noninline.h: Same.
      	* config/os/gnu-linux/bits/ctype_base.h: Same.
      	* config/os/generic/bits/ctype_noninline.h: Same.
      	* config/os/generic/bits/ctype_base.h: Same.
      
      	* libsupc++/tinfo.h: Tweaks.
      
      From-SVN: r48922
      Benjamin Kosnik committed
  10. 16 Feb, 2001 2 commits
    • Remove old ABI support from libsupc++. · 94083e5d
      	* libsupc++/cxxabi.h: Remove conditionally compiled code.
      	* libsupc++/exception_support.cc: Likewise.
      	* libsupc++/pure.cc: Likewise.
      	* libsupc++/tinfo.cc: Likewise.
      	* libsupc++/tinfo.h: Likewise.
      	* libsupc++/tinfo2.cc: Likewise.
      	* libsupc++/typeinfo: Likewise.
      	* libsupc++/vec.cc: Likewise.
      
      From-SVN: r39732
      Mark Mitchell committed
    • Add support for -fno-exceptions. · e2c09482
      2001-02-15  Benjamin Kosnik  <bkoz@redhat.com>
      
      	Add support for -fno-exceptions.
      	* include/bits/exception_support.h: Remove.
      	* include/bits/basic_string.h: Remove exception_support.
      	(string::_M_check): Replace __OUTOFRANGE with __throw_out_of_range.
      	(string::at): Same.
      	(string::substr): Same.
      	* include/bits/basic_string.tcc (string::reserve): Replace
      	__LENGTHERROR with __throw_length_error.
      	(string::_S_create): Same.
      	(string::resize): Same.
      	(string::_M_replace): Same.
      	(string::replace): Same.
      	(string::copy): Replace __OUTOFRANGE with __throw_out_of_range.
      	(string::compare): Same.
      	* include/bits/stl_vector.h: Remove exception_support.
      	* src/Makefile.am (base_headers): Remove here.
      	* src/Makefile.in: Regenerate.
      
      	* include/bits/stl_range_errors.h: Remove.
      	* include/bits/stl_deque.h: Use __throw_range_error.
      	* include/bits/std_deque.h: Include functexcept.h.
      	* include/bits/std_vector.h: Same.
      	* src/Makefile.am (base_headers): Remove here.
      	* src/Makefile.in: Regenerate.
      	* include/ext/stl_bvector.h (class __BVECTOR): Use __throw_range_error.
      	* include/ext/bvector: Remove stl_range_errors.h
      
      	* include/bits/c++config (_GLIBCPP_USE_EXCEPTIONS): Remove.
      
      	* include/bits/functexcept.h: New file.
      	* src/functexcept.cc: New file. Definitions for function-based
      	exception routines.
      	* src/Makefile.am (sources): Add functexcept.cc.
      	* src/Makefile.in: Regenerate.
      
      	* include/bits/stl_config.h (__STL_USE_EXCEPTIONS): Wrap with
      	__EXCEPTIONS.
      
      	* include/bits/localefwd.h: Include functexcept.h.
      	* include/bits/std_iosfwd.h: Same.
      
      	* include/bits/basic_ios.h: Use __throw_ios_failure instead of
      	throw basic_ios::failure.
      	* include/bits/fstream.tcc (filebuf::_M_allocate_buffers):
      	Use __throw_exception_again.
      	(filebuf::_M_filebuf_init): Same.
      	* include/bits/streambuf.tcc (__copy_streambufs): Same.
      	* include/bits/ostream.tcc (ostream::operator<<): Same.
      	* include/bits/istream.tcc (istream::operator>>): Same.
      	* include/bits/basic_string.tcc (string::_M_mutate): Same.
      	(string::_S_construct): Same.
      	(string::_M_clone): Same.
      	* include/bits/locale_facets.tcc (use_facet(const locale&)): Use
      	__throw_bad_cast.
      	(num_put<_CharT, _OutIter>::do_put): Use __throw_exception_again.
      	* src/localename.cc (locale::_Imp::_Imp(const _Impl&, size_t): Use
      	__throw_exception_again.
      	(locale::_Imp::_Imp(string, size_t): Same.
      	(locale::_Imp::_M_replace_facet): Use __throw_runtime_error.
      	* src/locale.cc (locale::_M_coalesce): Use __throw_exception_again.
      	(locale::locale(const char*)): Use __throw_runtime_error.
      	(locale::classic): Use __throw_exception_again.
      	(locale::_S_normalize_category): Use __throw_runtime_error.
      
      	* src/stdexcept.cc: Remove cruft.
      
      	* libsupc++/exception_defines.h: New file.
      	* libsupc++/new_opnt.cc: Include exception_defines.h.
      	* libsupc++/vec.cc: Same.
      	(__cxa_vec_new2): Use __throw_exception_again.
      	(__cxa_vec_new3): Same.
      	(__cxa_vec_ctor): Same.
      	(__cxa_vec_delete3): Same.
      	(__cxa_vec_cctor): Same.
      	(__cxa_vec_delete2): Same.
      	(__cxa_vec_dtor): Same.
      	* libsupc++/exception_support.cc: Include exception_defines.h. Only
      	compile exception-handling bits if __EXCEPTIONS is defined.
      	Remove old ABI support.
      	* libsupc++/new_op.cc (new): Include exception_defines.h. Use
      	std::__throw_bad_alloc() instead of throw bad_alloc.
      	* libsupc++/Makefile.am: Add exception_defines.h.
      	* libsupc++/Makefile.in: Reformat.
      	* libsupc++/*: Format.
      
      From-SVN: r39730
      Benjamin Kosnik committed
  11. 21 Oct, 2000 1 commit
    • [multiple changes] · 6b76f569
      2000-10-21  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>
      
      	* docs/links.html: Add links to defects list, standards FAQ.
      
      	* testsuite/21_strings/ctor_copy_dtor.cc (test01): Disable tests
      	with string creation that allocate huge ammounts of memory.
      
      	* include/c/bits/std_cstddef.h: Put size_t, ptrdiff_t in
      	namepace std.
      
      2000-10-21  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
      
          	* libsupc++/exception.cc: Use namespace std.
          	* libsupc++/new: DITTO.
          	* libsupc++/new_op.cc: DITTO.
          	* libsupc++/new_opnt.cc: DITTO.
          	* libsupc++/new_opv.cc: DITTO.
          	* libsupc++/new_opvnt.cc: DITTO.
          	* libsupc++/tinfo.cc: DITTO.
          	* libsupc++/tinfo.h: DITTO.
          	* libsupc++/vec.cc: DITTO.
          	* libsupc++/Makefile.am: Blank lines removal.
      
      From-SVN: r36995
      Benjamin Kosnik committed
  12. 10 Oct, 2000 1 commit
    • Makefile.am (LIBSUPCXX_INCLUDES): Adjust. · a6863e25
      2000-10-10  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>
      
      	* Makefile.am (LIBSUPCXX_INCLUDES): Adjust.
      	* libsupc++/include: Remove
      	* libsupc++/include/*: Move to ...
      	* libsupc++: Here.
      	* libsupc++/Makefile.am (glibcppinstall_HEADERS): Install headers.
      	(glibcppinstalldir): New.
      
      	* src/Makefile.am (c_base_headers): New.
      	(c_shadow_headers): New
      	(c_headers): New.
      	(myinstallheaders): Correct install issues.
      	* src/Makefile.in: Regenerate.
      
      	* Makefile.am (CSHADOW_INCLUDES): Simplify.
      	* Makefile.in: Regenerate.
      	* acinclude.m4 (GLIBCPP_ENABLE_SHADOW): Add c_include_dir.
      	* aclocal.m4: Regenerate.
      	* mkcheck.in (SRC_DIR): Use it.
      
      	* include/bits/std_stdexcept.h: And here.
      	* include/bits/std_ios.h: Change std_exception.h to exception.
      	* src/locale.cc: And here.
      	* src/locale-inst.cc: And here.
      
      	* include/bits/valarray_array.h: And here.
      	* include/bits/stl_alloc.h: And here.
      	* include/bits/stl_algobase.h: And here.
      	* include/bits/pthread_allocimpl.h: And here.
      	* include/bits/stl_construct.h: Change to std_new.h to new.
      
      	* include/bits/locale_facets.h: Change std_typeinfo.h to typeinfo.
      
      	* src/Makefile.am (INCLUDES): Add LIBSUPCXX_INCLUDES.
      	(headers): Remove duplicated headers.
      	(std_headers): And here.
      	* src/Makefile.in: Regenerate.
      	* libsupc++/Makefile.am (LIBSUPCXX_INCLUDES): Remove.
      	* libsupc++/Makefile.in: Regenerate.
      	* Makefile.am (LIBSUPCXX_INCLUDES): Add here.
      	(AM_MAKEFLAGS): And here.
      	* Makefile.in: Regenerate.
      	* include/bits/std_typeinfo.h: Remove.
      	* include/bits/std_new.h: Remove
      	* include/bits/std_exception.h: Remove.
      	* std/new: Remove.
      	* std/typeinfo: Remove.
      	* std/exception: Remove.
      
      	* libio/_G_config.h (__need_ptrdiff_t): Add.
      
      	* libsupc++/include/new: Change stddef.h to cstddef.
      	* libsupc++/tinfo.h: Change limits.h to climits.
      	* libsupc++/pure.cc: Comment out _GNU_LIBRARY_ bits, as this
      	renders the file uncompilable. Add copyright.
      
      	* include/c_std/bits/std_cstddef.h: Don't bring wchar_t into std
      	namespace, as it is a fundamental type.
      
      From-SVN: r36833
      Benjamin Kosnik committed
  13. 06 Oct, 2000 1 commit
    • libsupc++: New directory. · 06bd10fb
      2000-10-06  Benjamin Kosnik  <bkoz@cygnus.com>
                  Richard Henderson  <rth@cygnus.com>
      	    Alexandre Oliva  <aoliva@redhat.com>
      
      	* libsupc++: New directory.
      	* libsupc++/*: Populate.
      	* libsupc++/Makefile.am (INCLUDES): Add -I../../gcc for
      	eh-common.h, gansidecl.h.
      	* configure.in: Add in libsupc++/Makefile to AC_OUTPUT.
      	* configure: Regenerate.
      	* Makefile.am (SUBDIRS): Add libsupc++.
      	* Makefile.in: Regenerate.
      	* src/Makefile.am (libstdc___la_LIBADD): Add in libsupc++.la
      	* src/Makefile.in: Regenerate.
      	* libio/Makefile.am: Remove extraneous, confusing bits.
      	* libio/Makefile.in: Regeneate.
      
      From-SVN: r36763
      Benjamin Kosnik committed
  14. 25 May, 2000 1 commit
  15. 21 Mar, 2000 1 commit
    • cxxabi.h: New header file. · 2854d3c6
      	* inc/cxxabi.h: New header file. Define new-abi entry points.
      	(__pointer_type_info::target): Rename member to ...
      	(__pointer_type_info::type): ... here.
      	(__base_class_info::type): Rename member to ...
      	(__base_class_info::base): ... here.
      	* Make-lang.in (CXX_EXTRA_HEADERS): Add cxxabi.h
      	* cp-tree.h (CPTI_ABI): New global tree enumeration.
      	(abi_node): New global tree node.
      	* decl.c (abi_node): Document.
      	(init_decl_processing): Initialize abi_node.
      	* rtti.c (build_dynamic_cast_1): Use abi_node for new-abi.
      	(get_vmi_pseudo_type_info): Likewise.
      	(create_tinfo_types): Likewise.
      	(emit_support_tinfos): Likewise.
      	* tinfo.h (cxxabi.h): Include for new-abi.
      	Move rtti class definitions to new header file.
      	* tinfo.cc (abi): Use the namespace.
      	(std): Move new abi rtti classes from here ...
      	(__cxxabiv1): ... to here.
      	* tinfo2.cc (cxxabi.h): Include for new-abi.
      	Move rtti class definitions to new header file.
      	(std): Move new abi rtti classes from here ...
      	(__cxxabiv1): ... to here.
      	* inc/typeinfo (__class_type_info): Move into __cxxabiv1
      	namespace.
      
      From-SVN: r32669
      Nathan Sidwell committed
  16. 06 Feb, 2000 1 commit
  17. 31 Jan, 2000 3 commits
    • tinfo.h (old abi): #include "tconfig.h". · ab044c74
              * tinfo.h (old abi): #include "tconfig.h".
              * tinfo.cc (convert_to_base): Move into old abi section.
      
      From-SVN: r31725
      Jason Merrill committed
    • tinfo.h: Rename USItype to myint32, depend on BITS_PER_UNIT. · d4bf4842
      	* tinfo.h: Rename USItype to myint32, depend on BITS_PER_UNIT.
      
      	* exception.cc (__throw_bad_typeid): Add missing std::.
      
      From-SVN: r31718
      Jason Merrill committed
    • cp-tree.h (new_abi_rtti_p): Use flag_new_abi. · 808c61c8
      	* cp-tree.h (new_abi_rtti_p): Use flag_new_abi.
      
      	Runtime support for new-abi rtti.
      	* inc/typeinfo (type_info::operator!=): Define in class.
      	(type_info::before, type_info::name, type_info::operator==,
      	type_info::operator!=): Define new ABI implementations.
      	(type_info::is_pointer_p, type_info::is_function_p): Declare
      	new virtual functions.
      	(type_info::do_catch, type_info::do_upcast): Likewise.
      
      	* tinfo.h (__base_class_info): Define new class.
      	(__class_type_info): Likewise.
      	(__si_class_type_info): Likewise.
      	(__vmi_class_type_info): Likewise.
      	(__dynamic_cast): Prototype.
      
      	* tinfo.cc: Conditionalize old and new rtti mechanisms.
      	(type_info::is_pointer_p): Define new function.
      	(type_info::is_function_p): Likewise.
      	(type_info::do_catch): Likewise.
      	(type_info::do_upcast): Likewise.
      	(vtable_prefix): New structure for vtable access.
      	(adjust_pointer): Define new template function.
      	(contained_p, public_p, virtual_p, contained_public_p,
      	contained_nonpublic_p, contained_nonvirtual_p): Define new
      	functions.
      	(nonvirtual_base_type): New local variable.
      	(__class_type_info::~__class_type_info): Define.
      	(__si_class_type_info::~__si_class_type_info): Likewise.
      	(__vmi_class_type_info::~__vmi_class_type_info): Likewise.
      	(__class_type_info::do_catch): Define new function.
      	(__class_type_info::do_upcast): Likewise.
      	(__class_type_info::find_public_src): Likewise.
      	(__class_type_info::do_find_public_src): Likewise.
      	(__si_class_type_info::do_find_public_src): Likewise.
      	(__vmi_class_type_info::do_find_public_src): Likewise.
      	(__class_type_info::do_dyncast): Likewise.
      	(__si_class_type_info::do_dyncast): Likewise.
      	(__vmi_class_type_info::do_dyncast): Likewise.
      	(__class_type_info::do_upcast): Likewise.
      	(__si_class_type_info::do_upcast): Likewise.
      	(__vmi_class_type_info::do_upcast): Likewise.
      	(__dynamic_cast): Likewise.
      
      	* tinfo2.cc (__fundamental_type_info): Define new class.
      	(__pointer_type_info): Likewise.
      	(__reference_type_info): Likewise.
      	(__array_type_info): Likewise.
      	(__function_type_info): Likewise.
      	(__enum_type_info): Likewise.
      	(__ptr_to_member_type_info): Likewise.
      	(__fundamental_type_info::~__fundamental_type_info): Define.
      	(__pointer_type_info::~__pointer_type_info): Likewise.
      	(__reference_type_info::~__reference_type_info): Likewise.
      	(__array_type_info::~__array_type_info): Likewise.
      	(__function_type_info::~__function_type_info): Likewise.
      	(__enum_type_info::~__enum_type_info): Likewise.
      	(__ptr_to_member_type_info::~__ptr_to_member_type_info): Likewise.
      	(__pointer_type_info::do_catch): Define new function.
      	(__ptr_to_member_type_info::do_catch): Define new function.
      
      	(__throw_type_match_rtti_2): Use new ABI interface, if enabled.
      	(__is_pointer): Likewise.
      
      	* exception.cc (__cplus_type_matcher): Deal with new-abi rtti.
      
      From-SVN: r31713
      Nathan Sidwell committed
  18. 24 Jan, 2000 1 commit
    • cp-tree.h (CPTI_TP_DESC_TYPE, [...]): Remove cp_tree_index enumerations. · db1147b2
      	* cp-tree.h (CPTI_TP_DESC_TYPE, CPTI_ACCESS_MODE_TYPE,
      	CPTI_USER_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_ATTR_DESC_TYPE,
      	CPTI_PTMF_DESC_TYPE): Remove cp_tree_index enumerations.
      	(CPTI_TI_DESC_TYPE, CPTI_REF_DESC_TYPE, CPTI_ARY_DESC_TYPE,
      	CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_SI_CLASS_DESC_TYPE,
      	CPTI_VMI_CLASS_DESC_TYPE, CPTI_BASE_DESC_TYPE): New enumerations.
      	(CPTI_TINFO_FN_ID, CPTI_TINFO_FN_TYPE): Rename to ...
      	(CPTI_TINFO_DECL_ID, CPTI_TINFO_DECL_TYPE): ... here.
      	(CPTI_TINFO_VAR_ID): New enumeration.
      	(__tp_desc_type_node, __access_mode_type_node,
      	__bltn_desc_type_node, __user_desc_type_node,
      	__class_desc_type_node, __ptr_desc_type_node,
      	__attr_desc_type_node, __func_desc_type_node,
      	__ptmf_desc_type_node, __ptmd_desc_type_node): Remove #defines.
      	(ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
      	ref_desc_type_node, ary_desc_type_node, func_desc_type_node,
      	enum_desc_type_node, class_desc_type_node,
      	si_class_desc_type_node, vmi_class_desc_type_node,
      	ptmd_desc_type_node, base_desc_type_node): New #defines.
      	(tinfo_fn_id, tinfo_fn_type): Rename to ...
      	(tinfo_decl_id, tinfo_decl_type): ... here. Adjust.
      	(tinfo_var_id): New enumeration.
      	(DECL_TINFO_FN_P): Augment comment.
      	* decl.c (cp_global_trees): Adjust documentation.
      	* rtti.c (init_rtti_processing): Adjust for tinfo_decl_id,
      	tinfo_decl_type and tinfo_var_id.
      	(get_tinfo_decl_dynamic): Adjust for tinfo_decl_type.
      	(build_typeid): Remove unused variable.
      	(get_tinfo_var): Use tinfo_var_id.
      	(tinfo_name): New static function.
      	(get_tinfo_decl): Adjust for tinfo_decl_id and tinfo_decl_type.
      	(tinfo_from_decl): Likewise.
      	(get_base_offset): New static function, broken out of
      	expand_class_desc.
      	(expand_si_desc): Use tinfo_name.
      	(expand_class_desc): Likewise. Lose local static variable.
      	Use base_desc_type_node. Use get_base_offset.
      	(expand_ptr_desc): Use tinfo_name.
      	(expand_attr_desc): Likewise.
      	(expand_generic_desc): Likewise.
      
      	* tinfo.cc (__GXX_ABI_VERSION): Test value and existance.
      	* tinfo.h (__GXX_ABI_VERSION): Test value and existance.
      
      From-SVN: r31582
      Nathan Sidwell committed
  19. 20 Jan, 2000 1 commit
    • Remap dynamic cast hint values to be consistent across ABIs. · f08dda39
      	* search.c (dynamic_cast_base_recurse): Remap generated value.
      	(get_dynamic_cast_base_type): Adjust documentation.
      	* tinfo.h (__user_type_info::dyncast): Likewise.
      	(__user_type_info::find_public_subobj): Remap BOFF meaning.
      	* tinfo.cc (__si_type_info::do_dyncast): Remap BOFF meaning.
      	(__class_type_info::do_dyncast): Likewise.
      	(__class_type_info::do_find_public_subobj): Likewise.
      	* tinfo2.cc (__dynamic_cast): Remap BOFF parameter.
      
      From-SVN: r31538
      Nathan Sidwell committed
  20. 17 Jan, 2000 1 commit
    • cp-tree.h (flag_new_abi): Move. · bbd15aac
      	* cp-tree.h (flag_new_abi): Move.
      	(flag_use_cxa_atexit): Likewise.
      	(flag_honor_std): Likewise.
      	(flag_rtti): Likewise.
      	(vbase_offsets_in_vtable_p): Define.
      	(vptrs_present_everywhere_p): Likewise.
      	(TYPE_CONTAINS_VPTR_P): Likewise.
      	(dfs_walk_real): Declare.
      	* class.c (build_vbase_pointer_fields): Check
      	vbase_offsets_in_vtable_p.
      	(dfs_build_vbase_offset_vtbl_entries): Record the vbase indices in
      	BINFO_VPTR_FIELD.
      	(build_vbase_offset_vtbl_entries): Simplify.
      	(build_vbase_offset_vtbl_entries): Adjust.
      	(build_vbase_pointer): Add ability to look up vbase offsets in
      	vtable.
      	(start_vtable): New function.
      	(add_virtual_function): Use it.
      	(determine_primary_base): Use TYPE_CONTAINS_VPTR_P.
      	(num_extra_vtbl_entries): Use vbase_offsets_in_vtable_p.
      	(build_vtbl_initializer): Take the type of the complete object as
      	input.  Use it to correctly calculate vbase offsets.
      	(dfs_finish_vtbls): Pass the complete type to
      	build_vtbl_initializer.
      	(check_bases_and_members): Use TYPE_CONTAINS_VPTR_P.
      	(create_vtable_ptr): Create a vtable even if there are no
      	new virtual functions, under the new ABI.
      	(finish_struct_1): Likewise.
      	(get_vfield_name): Use TYPE_CONTAINS_VPTR_P.
      	* decl.c (exapnd_static_init): Remove call to
      	preserve_initializer.
      	* decl2.c (mark_vtable_entries): Tweak to handle vbase offsets in
      	vtables.
      	* init.c (initialize_vtbl_ptrs): Initialize them in pre-order.
      	(expand_virtual_init): Use vbase_offsets_in_vtable_p.
      	(construct_virtual_bases): Don't initialize virtual base pointers
      	under the new ABI.
      	(build_aggr_init): Clean up comment.
      	(expand_aggr_init_1): Likewise.
      	* rtti.c (expand_class_desc): Store the virtual function table
      	index where the vbase offset lives in the offset field.
      	* search.c (dfs_walk_real): Make it global.
      	(dfs_debug_mark): Use TYPE_CONTAINS_VPTR_P.
      	* tree.c (make_binfo): Don't clear BINFO_VPTR_FIELD.
      
      	* tinfo.h (USItype): Make it signed under the new ABI.
      	* tinfo.cc (convert_to_base): New function.  Encapsulate base
      	conversion logic here.
      	(__class_type_info::do_upcast): Use it.
      	(__class_type_info::do_dyncast): Likewise.
      	(__class_type_info::do_find_public_subobj): Likewise.
      
      From-SVN: r31452
      Mark Mitchell committed
  21. 21 Sep, 1999 1 commit
    • Reimplement dynamic cast and catch matching. · 4a9e5c67
      	* cp-tree.h (get_dynamic_cast_base_type): Prototype new function
      	* search.c (dynamic_cast_base_recurse): New function.
      	(get_dynamic_cast_base_type): New function for dynamic cast.
      	* rtti.c (build_dynamic_cast_1): Determine source and target
      	class relationship. Call __dynamic_cast_2.
      	* tinfo.h (__user_type_info::upcast): New catch dispatcher.
      	(__user_type_info::dyncast): New dynamic cast dispatcher.
      	(__user_type_info::sub_kind): New nested enumeration.
      	(__user_type_info::contained_p): sub_kind predicate.
      	(__user_type_info::contained_public_p): Likewise.
      	(__user_type_info::contained_nonpublic_p): Likewise.
      	(__user_type_info::contained_nonvirtual_p: Likewise.
      	(__user_type_info::upcast_result): New nested struct.
      	(__user_type_info::dyncast_result): New nested struct.
      	(*::do_upcast): New catch function.
      	(*::do_dyncast): New dynamic cast function.
      	(__user_type_info::find_public_subobj): New dynamic cast
      	helper dispatcher.
      	(*::do_find_public_subobj): New dynamic cast helper function.
      	* tinfo.cc (__user_type_info::upcast): Define catch dispatcher.
      	(__user_type_info::dyncast): Define dynamic cast dispatcher.
      	(*::do_upcast): Define catch function.
      	(*::do_dyncast): Define dynamic cast function.
      	(*::do_find_public_subobj): Define dynamic cast helper function.
      	* tinfo2.cc (__throw_type_match_rtti_2): Use upcast.
      	(__dynamic_cast): Backwards compatibility wrapper. Use dyncast.
      	(__dynamic_cast_2): New dynamic cast runtime.
      
      From-SVN: r29544
      Nathan Sidwell committed
  22. 24 Aug, 1999 1 commit
    • exception.cc (__cplus_type_matcher): Call __throw_type_match_rtti_2. · bbd0d54a
      	* exception.cc (__cplus_type_matcher): Call __throw_type_match_rtti_2.
      	Return arbitrary pointer or NULL.
      	(check_eh_spec): Call __throw_type_match_rtti_2.
      	* tinfo.h (*::dcast): Return int.  Add valp parm.
      	* tinfo.cc (*::dcast): Likewise.  Adjust to allow for null pointers.
      	* tinfo2.cc (__throw_type_match_rtti_2): Likewise.
      	(__throw_type_match_rtti): Now just a wrapper.
      
      	* except.c: Lose CatchMatch, FirstExceptionMatch, and Unwind.
      	(init_exception_processing): Don't initialize them.
      
      From-SVN: r28811
      Jason Merrill committed
  23. 02 Apr, 1999 1 commit
    • tinfo.h (__class_type_info): Fix illegal declaration. · 8f032717
      1999-04-02  Mark Mitchell  <mark@codesourcery.com>
      	* tinfo.h (__class_type_info): Fix illegal declaration.
      	* cp-tree.def (TEMPLATE_ID_EXPR): Update comment.
      	* cp-tree.h (INHERITED_VALUE_BINDING_P): New macro.
      	(IDENTIFIER_CLASS_VALUE): Improve documentation.
      	(is_properly_derived_from): Declare.
      	(invalidate_class_lookup_cache): Likewise.
      	(maybe_maybe_note_name_used_in_class): Likewise.
      	(note_name_declared_in_class): Likewise.
      	(push_using_decl): Remove duplicate declaration.
      	(id_in_current_class): Remove declaration.
      	(push_class_binding): Change prototype.
      	(clear_identitifer_class_values): Declare.
      	* call.c (is_properly_derived_from): Make it global.
      	(build_new_function_call): Be careful about updating candidates.
      	(build_new_method_call): Handle COMPONENT_REFs.  Don't crash when
      	asked to make illegal calls.
      	* class.c: Include splay-tree.h.
      	(class_stack_node): Add names_used slot.
      	(check_member_decl_is_same_in_complete_scope): Remove.
      	(add_method): Fix comment.  Push the declaration into class
      	scope.
      	(finish_struct_1): When popping the class, pop the bindings too.
      	Remove check for data member/function member conflict.
      	(finish_struct): Remove calls to
      	check_member_decl_is_same_in_complete_scope.  Change calls to
      	popclass.
      	(pushclass): Clear names_used in the class stack entry.
      	Use invalidate_class_lookup_cache to remove cached entries, rather
      	than magic values with popclass.  Clear IDENTIFIER_CLASS_VALUE
      	before entering a new class.  Remove dead code.  Don't mess with
      	current_function_decl when pushing declarations.
      	(invalidate_class_lookup_cache): New function, split out from ...
      	(popclass): Here.  Clean up names_used on our way out.
      	(instantiate_type): Adjust.
      	(build_self_reference): Don't push the declaration here.
      	(maybe_note_name_used_in_class): New function.
      	(note_name_declared_in_class): Likewise.
      	* decl.c (add_binding): Change prototype.
      	(find_class_binding_level): New function.
      	(innermost_nonclass_level): Likewise.
      	(current_binding_level): Update documentation.
      	(inner_binding_level): Remove.  Replace with current_binding_level
      	throughout.
      	(push_binding_level): Remove special handling of
      	class_binding_level.
      	(pop_binding_level): Likewise.  Use find_class_binding_level.
      	(suspend_binding_level): Likewise.
      	(global_bindings_p): Use innermost_nonclass_level.
      	(toplevel_bindings_p): Likewise.
      	(namespace_bindings_p): Likewise.
      	(pseudo_global_level_p): Likewise.
      	(push_binding): Clear INHERITED_VALUE_BINDING_P.
      	(add_binding): Check for illegal multiple declarations.  Return a
      	value indicating whether or not the new binding was legal.
      	(push_local_binding): Skip over class binding levels.  Check
      	return value from add_binding.
      	(push_class_binding): Set INHERITED_VALUE_BINDING_P.  Call
      	note_name_declared_in_class.
      	(pushlevel_class): Remove "fake out the rest of the compiler"
      	code.
      	(poplevel_class): Reset IDENTIFIER_CLASS_VALUEs.
      	(clear_identifier_class_values): New function.
      	(pop_from_top_level): Use it.
      	(pop_everything): Tweak.
      	(maybe_process_template_type_declaration): Don't push the
      	declaration for the template here.
      	(pushtag): Don't push tag declarations into class scope here.
      	(pushdecl): Apply DeMorgan's law for readability.
      	(pushdecl_class_level): Remove special-case code for
      	TYPE_BEING_DEFINED.  Handle OVERLOADs and anonymous unions.
      	(push_class_level_bindng): Deal with inherited bindings.
      	(lookup_name_real): Remove special-case code for
      	TYPE_BEING_DEFINED, and some implicit typename magic.
      	(grokdeclarator): Handle COMPONENT_REF for a template function.
      	(build_enumerator): Don't call pushdecl_class_level here.
      	(id_in_current_class): Remove.
      	* decl2.c (grokfield): Don't call pushdecl_class_level or
      	check_template_shadow.
      	* errfn.c (cp_file_of): Don't declare.
      	(cp_line_of): Likewise.
      	* error.c (dump_decl): Handle an OVERLOAD.
      	(cp_file_of): Likewise.
      	(cp_line_of): Likewise.
      	* init.c (build_member_call): Handle a COMPONENT_REF.
      	* lex.c (do_identifier): Call maybe_note_name_used_in_class, not
      	pushdecl_class_level.
      	* method.c (hack_identifier): Build COMPONENT_REFs for references
      	to member templates as well as member functions.  Remove dead
      	code.
      	* parse.y (left_curly): Remove.
      	(nonnested_type): Call maybe_note_name_used_in_class, not
      	pushdecl_class_level.
      	* parse.c: Regenerated.
      	(nested_name_specifier_1): Likewise.
      	* pt.c (check_explicit_specialization): Adjust, for robustness.
      	(check_template_shadow): Handle OVERLOADs.
      	(build_template_decl): Set DECL_CONSTRUCTOR_P on the
      	TEMPLATE_DECL, if appropriate.
      	* search.c (envelope_add_decl): Remove.
      	(dfs_pushdecls): Likewise.
      	(dfs_compress_decls): Likewise.
      	(dfs_push_decls): New function.
      	(dfs_push_type_decls): Likewise.
      	(setup_class_bindings): Likewise.
      	(template_self_reference_p): Likewise.
      	(lookup_field_r): Use it.
      	(looup_member): Remove old comment.  Deal with ambiguity.
      	(push_class_decls): Use dfs_push_decls and dfs_push_type_decls,
      	and remove envelope processing.
      	* semantics.c (begin_class_definition): Let pushclass push
      	declarations for base classes.
      	(finish_member_declaration): Push declarations into class scope.
      	* typeck.c (build_component_ref): Just put an OVERLOAD into the
      	COMPONENT_REF, not a TREE_LIST of an OVERLOAD.
      	(build_x_function_call): Deal with OVERLOAD.  Handle template-ids.
      	* Makefile.in (class.o): Depend on splay-tree.h.
      
      From-SVN: r26133
      Mark Mitchell committed
  24. 23 Nov, 1998 1 commit
  25. 08 May, 1998 1 commit
  26. 11 Oct, 1996 1 commit