- 05 Jan, 2015 1 commit
-
-
From-SVN: r219188
Jakub Jelinek committed
-
- 02 Jan, 2014 1 commit
-
-
From-SVN: r206301
Richard Sandiford committed
-
- 03 Feb, 2013 1 commit
-
-
From-SVN: r195701
Richard Sandiford committed
-
- 06 Dec, 2011 1 commit
-
-
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
-
- 09 Apr, 2009 1 commit
-
-
From-SVN: r145841
Jakub Jelinek committed
-
- 18 Mar, 2007 1 commit
-
-
* 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
-
- 17 Aug, 2005 1 commit
-
-
2005-08-17 Kelley Cook <kcook@gcc.gnu.org> * All files: Update FSF address. From-SVN: r103192
Kelley Cook committed
-
- 06 May, 2004 1 commit
-
-
2004-05-06 Matthias Klose <doko@debian.org> * include/backward/iterator.h: Add GPL copyright info, with exception clause. * include/bits/boost_concept_check.h: Likewise. * include * libsupc++/tinfo.h: Likewise. * po/string_literals.cc: Likewise. From-SVN: r81581
Matthias Klose committed
-
- 16 Jan, 2002 1 commit
-
-
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
-
- 16 Feb, 2001 2 commits
-
-
* 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 -
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
-
- 21 Oct, 2000 1 commit
-
-
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
-
- 10 Oct, 2000 1 commit
-
-
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
-
- 06 Oct, 2000 1 commit
-
-
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
-
- 25 May, 2000 1 commit
-
-
* tinfo.h (__user_type_info::contained_virtual_p): New predicate. * tinfo.cc (__user_type_info::do_upcast): Fix bug with diamond shaped heirarchy. (__vmi_class_type_info::__do_upcast): Fix bug with NULL pointer to diamond shaped heirarchy. Add early out for mixed diamond and duplicate shaped heirarchy. From-SVN: r34163
Nathan Sidwell committed
-
- 21 Mar, 2000 1 commit
-
-
* 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
-
- 06 Feb, 2000 1 commit
-
-
* cp/tinfo.h: Remove apostrophes from C++ comment (xgettext thinks this file is plain C). * i386/osf1elf.h: Add missing backslash to multiline string. * po/POTFILES.in: Remove stupid.c. * exgettext: s/VPROTO/VPARAMS/ now that we are no longer using VPROTO. From-SVN: r31816
Zack Weinberg committed
-
- 31 Jan, 2000 3 commits
-
-
* 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. * 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. 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
-
- 24 Jan, 2000 1 commit
-
-
* 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
-
- 20 Jan, 2000 1 commit
-
-
* 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
-
- 17 Jan, 2000 1 commit
-
-
* 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 Sep, 1999 1 commit
-
-
* 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
-
- 24 Aug, 1999 1 commit
-
-
* 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
-
- 02 Apr, 1999 1 commit
-
-
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
-
- 23 Nov, 1998 1 commit
-
-
From-SVN: r23764
Jason Merrill committed
-
- 08 May, 1998 1 commit
-
-
From-SVN: r19631
Martin v. Löwis committed
-
- 11 Oct, 1996 1 commit
-
-
From-SVN: r12954
Mike Stump committed
-