summaryrefslogtreecommitdiff
path: root/libstdc++-v3/libsupc++
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2009-04-19 00:18:21 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2009-04-18 22:18:21 +0000
commit5cf217fff1128005fb24e95ffa0b72c844af3d37 (patch)
treebbad215524bee16dc90ee4efb9a8fbee20c6358d /libstdc++-v3/libsupc++
parent5d51b87af49e8a1862c2e6c2cb9fd0a434a3e28f (diff)
downloadgcc-5cf217fff1128005fb24e95ffa0b72c844af3d37.tar.gz
* eh_type.cc (__cxa_current_exception_type) Mark throw().
* unwind-cxx.h (__cxa_get_globals, __cxa_get_globals_fast): Mark const. (__cxa_get_exception_ptr): Mark pure. (__cxa_bad_cast, __cxa_bad_typeid): Mark noreturn (__terminate): Makr throw (). * exception (terminate): Mark throw(). (uncaught_exception): Mark pure. * eh_ptr.cc (_M_safe_bool_dummy): Mark throw(). * guard.cc (__cxa_guard_abort, __cxa_guard_release): Mark throw(). * eh_terminate.cc (__terminate, terminate): Mark throw(). * vec.cc (__cxa_vec_cleanup): Mark throw(). * cxxabi.h (__cxa_vec_cleanup, __cxa_guard_release, __cxa_guard_abort): Mark throw (). (__cxa_pure_virtual): Mark noreturn. (__cxa_current_exception_type): Mark throw and pure. * exception_ptr.h (operator ==, !=, _M_get, !, ==, __cxa_exception_type): Mark pure. (_M_safe_bool_dummy): Mark pure and const. From-SVN: r146331
Diffstat (limited to 'libstdc++-v3/libsupc++')
-rw-r--r--libstdc++-v3/libsupc++/cxxabi.h12
-rw-r--r--libstdc++-v3/libsupc++/eh_ptr.cc2
-rw-r--r--libstdc++-v3/libsupc++/eh_terminate.cc4
-rw-r--r--libstdc++-v3/libsupc++/eh_type.cc2
-rw-r--r--libstdc++-v3/libsupc++/exception4
-rw-r--r--libstdc++-v3/libsupc++/exception_ptr.h14
-rw-r--r--libstdc++-v3/libsupc++/guard.cc4
-rw-r--r--libstdc++-v3/libsupc++/unwind-cxx.h12
-rw-r--r--libstdc++-v3/libsupc++/vec.cc2
9 files changed, 28 insertions, 28 deletions
diff --git a/libstdc++-v3/libsupc++/cxxabi.h b/libstdc++-v3/libsupc++/cxxabi.h
index bfdd8e5896d..834e434e1e1 100644
--- a/libstdc++-v3/libsupc++/cxxabi.h
+++ b/libstdc++-v3/libsupc++/cxxabi.h
@@ -100,7 +100,7 @@ namespace __cxxabiv1
void
__cxa_vec_cleanup(void* __array_address, size_t __element_count,
- size_t __element_size, __cxa_cdtor_type destructor);
+ size_t __element_size, __cxa_cdtor_type destructor) _GLIBCXX_NOTHROW;
// Destruct and release array.
void
@@ -121,14 +121,14 @@ namespace __cxxabiv1
__cxa_guard_acquire(__guard*);
void
- __cxa_guard_release(__guard*);
+ __cxa_guard_release(__guard*) _GLIBCXX_NOTHROW;
void
- __cxa_guard_abort(__guard*);
+ __cxa_guard_abort(__guard*) _GLIBCXX_NOTHROW;
// Pure virtual functions.
void
- __cxa_pure_virtual(void);
+ __cxa_pure_virtual(void) __attribute__ ((__noreturn__));
// Exception handling.
void
@@ -567,13 +567,13 @@ namespace __cxxabiv1
// Returns the type_info for the currently handled exception [15.3/8], or
// null if there is none.
extern "C" std::type_info*
- __cxa_current_exception_type();
+ __cxa_current_exception_type() _GLIBCXX_NOTHROW __attribute__ ((__pure__));
// A magic placeholder class that can be caught by reference
// to recognize foreign exceptions.
class __foreign_exception
{
- virtual ~__foreign_exception() throw();
+ virtual ~__foreign_exception() _GLIBCXX_NOTHROW;
virtual void __pure_dummy() = 0; // prevent catch by value
};
diff --git a/libstdc++-v3/libsupc++/eh_ptr.cc b/libstdc++-v3/libsupc++/eh_ptr.cc
index 769273f3a61..bbe5f8f13f9 100644
--- a/libstdc++-v3/libsupc++/eh_ptr.cc
+++ b/libstdc++-v3/libsupc++/eh_ptr.cc
@@ -113,7 +113,7 @@ std::__exception_ptr::exception_ptr::_M_get() const throw()
void
-std::__exception_ptr::exception_ptr::_M_safe_bool_dummy()
+std::__exception_ptr::exception_ptr::_M_safe_bool_dummy() throw ()
{
}
diff --git a/libstdc++-v3/libsupc++/eh_terminate.cc b/libstdc++-v3/libsupc++/eh_terminate.cc
index d0c8461006f..e03c037412a 100644
--- a/libstdc++-v3/libsupc++/eh_terminate.cc
+++ b/libstdc++-v3/libsupc++/eh_terminate.cc
@@ -32,7 +32,7 @@
using namespace __cxxabiv1;
void
-__cxxabiv1::__terminate (std::terminate_handler handler)
+__cxxabiv1::__terminate (std::terminate_handler handler) throw ()
{
try {
handler ();
@@ -43,7 +43,7 @@ __cxxabiv1::__terminate (std::terminate_handler handler)
}
void
-std::terminate ()
+std::terminate () throw()
{
__terminate (__terminate_handler);
}
diff --git a/libstdc++-v3/libsupc++/eh_type.cc b/libstdc++-v3/libsupc++/eh_type.cc
index f0277d401d7..bb8be0b752e 100644
--- a/libstdc++-v3/libsupc++/eh_type.cc
+++ b/libstdc++-v3/libsupc++/eh_type.cc
@@ -33,7 +33,7 @@ namespace __cxxabiv1
// Returns the type_info for the currently handled exception [15.3/8], or
// null if there is none.
extern "C"
-std::type_info *__cxa_current_exception_type ()
+std::type_info *__cxa_current_exception_type () throw()
{
__cxa_eh_globals *globals = __cxa_get_globals ();
__cxa_exception *header = globals->caughtExceptions;
diff --git a/libstdc++-v3/libsupc++/exception b/libstdc++-v3/libsupc++/exception
index 7fa929b6adf..c8b334fe945 100644
--- a/libstdc++-v3/libsupc++/exception
+++ b/libstdc++-v3/libsupc++/exception
@@ -93,7 +93,7 @@ namespace std
/** The runtime will call this function if %exception handling must be
* abandoned for any reason. It can also be called by the user. */
- void terminate() __attribute__ ((__noreturn__));
+ void terminate() throw() __attribute__ ((__noreturn__));
/// Takes a new handler function as an argument, returns the old function.
unexpected_handler set_unexpected(unexpected_handler) throw();
@@ -112,7 +112,7 @@ namespace std
* 2: "When @c uncaught_exception() is true, throwing an %exception can
* result in a call of @c terminate() (15.5.1)."
*/
- bool uncaught_exception() throw();
+ bool uncaught_exception() throw() __attribute__ ((__pure__));
// @} group exceptions
} // namespace std
diff --git a/libstdc++-v3/libsupc++/exception_ptr.h b/libstdc++-v3/libsupc++/exception_ptr.h
index 3c44ff113fb..56997221f25 100644
--- a/libstdc++-v3/libsupc++/exception_ptr.h
+++ b/libstdc++-v3/libsupc++/exception_ptr.h
@@ -77,10 +77,10 @@ namespace std
namespace __exception_ptr
{
bool
- operator==(const exception_ptr&, const exception_ptr&) throw();
+ operator==(const exception_ptr&, const exception_ptr&) throw() __attribute__ ((__pure__));
bool
- operator!=(const exception_ptr&, const exception_ptr&) throw();
+ operator!=(const exception_ptr&, const exception_ptr&) throw() __attribute__ ((__pure__));
class exception_ptr
{
@@ -91,9 +91,9 @@ namespace std
void _M_addref() throw();
void _M_release() throw();
- void *_M_get() const throw();
+ void *_M_get() const throw() __attribute__ ((__pure__));
- void _M_safe_bool_dummy();
+ void _M_safe_bool_dummy() throw() __attribute__ ((__const__));
friend exception_ptr std::current_exception() throw();
friend void std::rethrow_exception(exception_ptr);
@@ -141,14 +141,14 @@ namespace std
}
#endif
- bool operator!() const throw();
+ bool operator!() const throw() __attribute__ ((__pure__));
operator __safe_bool() const throw();
friend bool
- operator==(const exception_ptr&, const exception_ptr&) throw();
+ operator==(const exception_ptr&, const exception_ptr&) throw() __attribute__ ((__pure__));
const type_info*
- __cxa_exception_type() const throw();
+ __cxa_exception_type() const throw() __attribute__ ((__pure__));
};
} // namespace __exception_ptr
diff --git a/libstdc++-v3/libsupc++/guard.cc b/libstdc++-v3/libsupc++/guard.cc
index 10f909215c1..dace046e544 100644
--- a/libstdc++-v3/libsupc++/guard.cc
+++ b/libstdc++-v3/libsupc++/guard.cc
@@ -330,7 +330,7 @@ namespace __cxxabiv1
}
extern "C"
- void __cxa_guard_abort (__guard *g)
+ void __cxa_guard_abort (__guard *g) throw ()
{
#ifdef _GLIBCXX_USE_FUTEX
// If __sync_* and futex syscall are supported, don't use any global
@@ -369,7 +369,7 @@ namespace __cxxabiv1
}
extern "C"
- void __cxa_guard_release (__guard *g)
+ void __cxa_guard_release (__guard *g) throw ()
{
#ifdef _GLIBCXX_USE_FUTEX
// If __sync_* and futex syscall are supported, don't use any global
diff --git a/libstdc++-v3/libsupc++/unwind-cxx.h b/libstdc++-v3/libsupc++/unwind-cxx.h
index 984dd677342..e4918b211bf 100644
--- a/libstdc++-v3/libsupc++/unwind-cxx.h
+++ b/libstdc++-v3/libsupc++/unwind-cxx.h
@@ -148,8 +148,8 @@ struct __cxa_eh_globals
// either of the following functions. The "fast" version assumes at least
// one prior call of __cxa_get_globals has been made from the current
// thread, so no initialization is necessary.
-extern "C" __cxa_eh_globals *__cxa_get_globals () throw();
-extern "C" __cxa_eh_globals *__cxa_get_globals_fast () throw();
+extern "C" __cxa_eh_globals *__cxa_get_globals () throw() __attribute__ ((__const__));
+extern "C" __cxa_eh_globals *__cxa_get_globals_fast () throw() __attribute__ ((__const__));
// Allocate memory for the primary exception plus the thrown object.
extern "C" void *__cxa_allocate_exception(std::size_t thrown_size) throw();
@@ -172,14 +172,14 @@ extern "C" void __cxa_throw (void *thrown_exception,
__attribute__((noreturn));
// Used to implement exception handlers.
-extern "C" void *__cxa_get_exception_ptr (void *) throw();
+extern "C" void *__cxa_get_exception_ptr (void *) throw() __attribute__ ((__pure__));
extern "C" void *__cxa_begin_catch (void *) throw();
extern "C" void __cxa_end_catch ();
extern "C" void __cxa_rethrow () __attribute__((noreturn));
// These facilitate code generation for recurring situations.
-extern "C" void __cxa_bad_cast ();
-extern "C" void __cxa_bad_typeid ();
+extern "C" void __cxa_bad_cast () __attribute__((__noreturn__));
+extern "C" void __cxa_bad_typeid () __attribute__((__noreturn__));
// @@@ These are not directly specified by the IA-64 C++ ABI.
@@ -204,7 +204,7 @@ extern "C" void __cxa_end_cleanup (void);
// Invokes given handler, dying appropriately if the user handler was
// so inconsiderate as to return.
-extern void __terminate(std::terminate_handler) __attribute__((noreturn));
+extern void __terminate(std::terminate_handler) throw () __attribute__((__noreturn__));
extern void __unexpected(std::unexpected_handler) __attribute__((noreturn));
// The current installed user handlers.
diff --git a/libstdc++-v3/libsupc++/vec.cc b/libstdc++-v3/libsupc++/vec.cc
index 886e6fc99c8..f1322896d0b 100644
--- a/libstdc++-v3/libsupc++/vec.cc
+++ b/libstdc++-v3/libsupc++/vec.cc
@@ -248,7 +248,7 @@ namespace __cxxabiv1
__cxa_vec_cleanup(void *array_address,
std::size_t element_count,
std::size_t element_size,
- __cxa_cdtor_type destructor)
+ __cxa_cdtor_type destructor) throw()
{
if (destructor)
{