Commit 52ceb039 by Benjamin Kosnik Committed by Benjamin Kosnik

cxxabi.h: Remove duplicated and useless public and private keywords in class declarations.


2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>

	* libsupc++/cxxabi.h: Remove duplicated and useless public and
        private keywords in class declarations. Format. Use
        stddef.h. Expose declarations to "C" compilation.
        * libsupc++/tinfo.cc (__upcast_result): Add copy constructor and
        assignment operator.
        (__dyncast_result): Same.
        * libsupc++/vec.cc (uncatch_exception): Same, use member
        initialization list.

From-SVN: r82147
parent 8e657c46
2004-05-22 Benjamin Kosnik <bkoz@redhat.com> 2004-05-22 Benjamin Kosnik <bkoz@redhat.com>
* libsupc++/cxxabi.h: Remove duplicated and useless public and
private keywords in class declarations. Format. Use
stddef.h. Expose declarations to "C" compilation.
* libsupc++/tinfo.cc (__upcast_result): Add copy constructor and
assignment operator.
(__dyncast_result): Same.
* libsupc++/vec.cc (uncatch_exception): Same, use member
initialization list.
2004-05-22 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/abi_check.cc: Add unistd.h. * testsuite/abi_check.cc: Add unistd.h.
2004-05-22 Paolo Carlini <pcarlini@suse.de> 2004-05-22 Paolo Carlini <pcarlini@suse.de>
......
...@@ -200,10 +200,28 @@ struct __class_type_info::__upcast_result ...@@ -200,10 +200,28 @@ struct __class_type_info::__upcast_result
// if in vbase the __class_type_info of vbase // if in vbase the __class_type_info of vbase
// if a non-virtual base then 1 // if a non-virtual base then 1
// else NULL // else NULL
public:
__upcast_result (int d) __upcast_result (int d)
:dst_ptr (NULL), part2dst (__unknown), src_details (d), base_type (NULL) :dst_ptr (NULL), part2dst (__unknown), src_details (d), base_type (NULL)
{} {}
explicit
__upcast_result(const __upcast_result& r)
: dst_ptr(r.dst_ptr), part2dst(r.part2dst), src_details(r.src_details),
base_type(r.base_type)
{ }
__upcast_result&
operator=(const __upcast_result& r)
{
if (&r != this)
{
dst_ptr = r.dst_ptr;
part2dst = r.part2dst;
src_details = r.src_details;
base_type = r.base_type;
}
return *this;
}
}; };
// __dyncast_result is used to hold information during traversal of a class // __dyncast_result is used to hold information during traversal of a class
...@@ -216,12 +234,17 @@ struct __class_type_info::__dyncast_result ...@@ -216,12 +234,17 @@ struct __class_type_info::__dyncast_result
__sub_kind dst2src; // path from target to sub object __sub_kind dst2src; // path from target to sub object
int whole_details; // details of the whole class hierarchy int whole_details; // details of the whole class hierarchy
public:
__dyncast_result (int details_ = __vmi_class_type_info::__flags_unknown_mask) __dyncast_result (int details_ = __vmi_class_type_info::__flags_unknown_mask)
:dst_ptr (NULL), whole2dst (__unknown), :dst_ptr (NULL), whole2dst (__unknown),
whole2src (__unknown), dst2src (__unknown), whole2src (__unknown), dst2src (__unknown),
whole_details (details_) whole_details (details_)
{} {}
protected:
__dyncast_result(const __dyncast_result&);
__dyncast_result&
operator=(const __dyncast_result&);
}; };
bool __class_type_info:: bool __class_type_info::
......
// New abi Support -*- C++ -*- // New abi Support -*- C++ -*-
// Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc. // Copyright (C) 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
// //
// This file is part of GCC. // This file is part of GCC.
// //
...@@ -42,13 +42,19 @@ namespace __cxxabiv1 ...@@ -42,13 +42,19 @@ namespace __cxxabiv1
{ {
struct uncatch_exception struct uncatch_exception
{ {
uncatch_exception (); uncatch_exception();
~uncatch_exception () { __cxa_begin_catch (&p->unwindHeader); } ~uncatch_exception () { __cxa_begin_catch (&p->unwindHeader); }
__cxa_exception *p; __cxa_exception* p;
private:
uncatch_exception&
operator=(const uncatch_exception&);
uncatch_exception(const uncatch_exception&);
}; };
uncatch_exception::uncatch_exception () uncatch_exception::uncatch_exception() : p(0)
{ {
__cxa_eh_globals *globals = __cxa_get_globals_fast (); __cxa_eh_globals *globals = __cxa_get_globals_fast ();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment