* 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 8b0d0e0..1e89661 100644 (file)
@@ -1,5 +1,25 @@
 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 ()
        * src/mt_allocator.cc (_M_reclaim_block, _M_reclaim_block,
        _M_destroy_thread_key): Mark throw ()
index bfdd8e5..834e434 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 769273f..bbe5f8f 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 d0c8461..e03c037 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 f0277d4..bb8be0b 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 7fa929b..c8b334f 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 3c44ff1..5699722 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 10f9092..dace046 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 984dd67..e4918b2 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 886e6fc..f132289 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)
       {