]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* eh_type.cc (__cxa_current_exception_type) Mark throw().
authorJan Hubicka <jh@suse.cz>
Sat, 18 Apr 2009 22:18:21 +0000 (00:18 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Sat, 18 Apr 2009 22:18:21 +0000 (22:18 +0000)
* 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

libstdc++-v3/ChangeLog
libstdc++-v3/libsupc++/cxxabi.h
libstdc++-v3/libsupc++/eh_ptr.cc
libstdc++-v3/libsupc++/eh_terminate.cc
libstdc++-v3/libsupc++/eh_type.cc
libstdc++-v3/libsupc++/exception
libstdc++-v3/libsupc++/exception_ptr.h
libstdc++-v3/libsupc++/guard.cc
libstdc++-v3/libsupc++/unwind-cxx.h
libstdc++-v3/libsupc++/vec.cc

index 8b0d0e03beaf2af3a161b0dee448e726624a7b2f..1e8966131837f48fc2baac642cd0de022e967eaf 100644 (file)
@@ -1,3 +1,23 @@
+2009-04-18  Jan Hubicka  <jh@suse.cz>
+
+       * 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.
+
 2009-04-18  Jan Hubicka  <jh@suse.cz>
 
        * src/pool_allocator.cc (_M_get_free_list, _M_get_mutex): Mark throw ()
index bfdd8e5896d576e874d0a516e4c5f2714ab6303b..834e434e1e15fd74650744bef6a4c2b05f00ea75 100644 (file)
@@ -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
   };
 
index 769273f3a61936b80487dda3fad25ed105e05c18..bbe5f8f13f98490f1f817fe1da6b20a052c813fb 100644 (file)
@@ -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 ()
 {
 }
 
index d0c8461006f042621923f34dcfa05a8365a9850c..e03c037412a0804bf6a766d6ff6e6af6d00d6c26 100644 (file)
@@ -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);
 }
index f0277d401d7fcf0819e2b2e87b09735fdad65454..bb8be0b752e1d53f294d79842f3785fa8598f34f 100644 (file)
@@ -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;
index 7fa929b6adf89a3033c734df79f0bce63fc1dbbc..c8b334fe94573024211b2896f0d02404b45edb05 100644 (file)
@@ -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
index 3c44ff113fbf99c621c739282f28489a27289013..56997221f257b263722f58641cadc761ae01c665 100644 (file)
@@ -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
index 10f909215c10f2cde5b2a1d43d32688a56298cfe..dace046e5442906f29721045ac4a62433f4daf92 100644 (file)
@@ -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
index 984dd677342e5f3decc411ac9dac433310c761b4..e4918b211bfbf76019cb02e5fc0da7b24c245aa7 100644 (file)
@@ -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.
index 886e6fc99c849fc978fe881711a35d78eaebed25..f1322896d0be55b44b8c9c2b9667799c1f48e0d9 100644 (file)
@@ -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)
       {