Author: sebor
Date: Sat Jul 26 15:11:39 2008
New Revision: 680050

URL: http://svn.apache.org/viewvc?rev=680050&view=rev
Log:
2008-07-26  Martin Sebor  <[EMAIL PROTECTED]>

        STDCXX-998
        * src/assert.cpp (U_STACK_TRACE, __rw_stack_trace, printstack,
        __rw_assert_fail): Declared nothrow.

Modified:
    stdcxx/branches/4.2.x/src/assert.cpp

Modified: stdcxx/branches/4.2.x/src/assert.cpp
URL: 
http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/src/assert.cpp?rev=680050&r1=680049&r2=680050&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/src/assert.cpp (original)
+++ stdcxx/branches/4.2.x/src/assert.cpp Sat Jul 26 15:11:39 2008
@@ -22,7 +22,7 @@
  * implied.   See  the License  for  the  specific language  governing
  * permissions and limitations under the License.
  *
- * Copyright 1994-2006 Rogue Wave Software.
+ * Copyright 1994-2006 Rogue Wave Software, Inc.
  * 
  **************************************************************************/
 
@@ -37,7 +37,7 @@
 
 #ifdef __HP_aCC
 
-extern "C" void U_STACK_TRACE ();
+extern "C" void U_STACK_TRACE () _RWSTD_DECLARE_NOTHROW;
 
 #  define STACK_TRACE   U_STACK_TRACE
 
@@ -47,8 +47,14 @@
 
 _RWSTD_NAMESPACE (__rw) {
 
+// declare with attribute((nothrow)) since the function calls
+// others that may not be declared nothrow
 static void
-__rw_stack_trace (int fd)
+__rw_stack_trace (int fd) _RWSTD_DECLARE_NOTHROW;
+
+
+static void
+__rw_stack_trace (int fd) _RWSTD_DEFINE_NOTHROW
 {
     // limit stacktrace to the depth of 256 calls
     void* array [256];
@@ -70,7 +76,7 @@
 // having to #define enabling macros (i.e., __EXTENSIONS__) and deal
 // with the breakage when using a strict compiler such as EDG eccp
 // with the long long extension (used in some system headers) disabled
-extern "C" int printstack (int);
+extern "C" int printstack (int) _RWSTD_DECLARE_NOTHROW;
 
 #    define STACK_TRACE()   printstack (2)
 #endif
@@ -86,6 +92,7 @@
 _RWSTD_EXPORT void
 __rw_assert_fail (const char *expr,
                   const char *file, int line, const char *func)
+     _RWSTD_DEFINE_NOTHROW
 {
     // func may be 0 if the compiler doesn't support the ANSI C predefined
     // identifier `__func__' (see 6.4.2.2 of ISO/IEC 9899:1999) or an


Reply via email to