Index: trunk/include/iprt/cdefs.h
===================================================================
--- trunk/include/iprt/cdefs.h	(revision 57430)
+++ trunk/include/iprt/cdefs.h	(revision 57432)
@@ -877,5 +877,5 @@
 #endif
 
-/** @def RT_NO_THROW
+/** @def RT_NO_THROW_PROTO
  * How to express that a function doesn't throw C++ exceptions
  * and the compiler can thus save itself the bother of trying
@@ -883,16 +883,29 @@
  * and the semicolon in function prototypes (and implementation if C++).
  *
+ * @remarks May not work on C++ methods, mainly intented for C-style APIs.
+ *
  * @remarks The use of the nothrow attribute with GCC is because old compilers
  *          (4.1.1, 32-bit) leaking the nothrow into global space or something
- *          when used with RTDECL or similar.
+ *          when used with RTDECL or similar.  Using this forces use to have two
+ *          macros, as the nothrow attribute is not for the function definition.
  */
 #ifdef RT_EXCEPTIONS_ENABLED
 # ifdef __GNUC__
-#  define RT_NO_THROW           __attribute__((nothrow))
+#  define RT_NO_THROW_PROTO     __attribute__((__nothrow__))
 # else
-#  define RT_NO_THROW           throw()
-# endif
-#else
-# define RT_NO_THROW
+#  define RT_NO_THROW_PROTO     throw()
+# endif
+#else
+# define RT_NO_THROW_PROO
+#endif
+
+/** @def RT_NO_THROW_DEF
+ * The counter part to RT_NO_THROW_PROTO that is added to the function
+ * definition.
+ */
+#if defined(RT_EXCEPTIONS_ENABLED) && !defined(__GNUC__)
+# define RT_NO_THROW_DEF        RT_NO_THROW_PROTO
+#else
+# define RT_NO_THROW_DEF
 #endif
 
Index: trunk/include/iprt/mem.h
===================================================================
--- trunk/include/iprt/mem.h	(revision 57430)
+++ trunk/include/iprt/mem.h	(revision 57432)
@@ -103,5 +103,5 @@
  * @param   pszTag  Allocation tag used for statistics and such.
  */
-RTDECL(void *)  RTMemTmpAllocTag(size_t cb, const char *pszTag) RT_NO_THROW;
+RTDECL(void *)  RTMemTmpAllocTag(size_t cb, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -126,5 +126,5 @@
  * @param   pszTag  Allocation tag used for statistics and such.
  */
-RTDECL(void *)  RTMemTmpAllocZTag(size_t cb, const char *pszTag) RT_NO_THROW;
+RTDECL(void *)  RTMemTmpAllocZTag(size_t cb, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -133,5 +133,5 @@
  * @param   pv      Pointer to memory block.
  */
-RTDECL(void)    RTMemTmpFree(void *pv) RT_NO_THROW;
+RTDECL(void)    RTMemTmpFree(void *pv) RT_NO_THROW_PROTO;
 
 /** @}  */
@@ -156,5 +156,5 @@
  * @param   pszTag  Allocation tag used for statistics and such.
  */
-RTDECL(void *)  RTMemAllocTag(size_t cb, const char *pszTag) RT_NO_THROW;
+RTDECL(void *)  RTMemAllocTag(size_t cb, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -183,5 +183,5 @@
  * @param   pszTag  Allocation tag used for statistics and such.
  */
-RTDECL(void *)  RTMemAllocZTag(size_t cb, const char *pszTag) RT_NO_THROW;
+RTDECL(void *)  RTMemAllocZTag(size_t cb, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -202,5 +202,5 @@
  * @param   pszTag              Allocation tag used for statistics and such.
  */
-RTDECL(void *) RTMemAllocVarTag(size_t cbUnaligned, const char *pszTag) RT_NO_THROW;
+RTDECL(void *) RTMemAllocVarTag(size_t cbUnaligned, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -221,5 +221,5 @@
  * @param   pszTag              Allocation tag used for statistics and such.
  */
-RTDECL(void *) RTMemAllocZVarTag(size_t cbUnaligned, const char *pszTag) RT_NO_THROW;
+RTDECL(void *) RTMemAllocZVarTag(size_t cbUnaligned, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -242,5 +242,5 @@
  * @param   pszTag  Allocation tag used for statistics and such.
  */
-RTDECL(void *) RTMemDupTag(const void *pvSrc, size_t cb, const char *pszTag) RT_NO_THROW;
+RTDECL(void *) RTMemDupTag(const void *pvSrc, size_t cb, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -267,5 +267,5 @@
  * @param   pszTag  Allocation tag used for statistics and such.
  */
-RTDECL(void *) RTMemDupExTag(const void *pvSrc, size_t cbSrc, size_t cbExtra, const char *pszTag) RT_NO_THROW;
+RTDECL(void *) RTMemDupExTag(const void *pvSrc, size_t cbSrc, size_t cbExtra, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -288,5 +288,5 @@
  * @param   pszTag  Allocation tag used for statistics and such.
  */
-RTDECL(void *)  RTMemReallocTag(void *pvOld, size_t cbNew, const char *pszTag) RT_NO_THROW;
+RTDECL(void *)  RTMemReallocTag(void *pvOld, size_t cbNew, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -295,5 +295,5 @@
  * @param   pv      Pointer to memory block.
  */
-RTDECL(void)    RTMemFree(void *pv) RT_NO_THROW;
+RTDECL(void)    RTMemFree(void *pv) RT_NO_THROW_PROTO;
 
 
@@ -362,5 +362,5 @@
  * @param   ppv                 Where to return the memory.
  */
-RTDECL(int) RTMemAllocExTag(size_t cb, size_t cbAlignment, uint32_t fFlags, const char *pszTag, void **ppv) RT_NO_THROW;
+RTDECL(int) RTMemAllocExTag(size_t cb, size_t cbAlignment, uint32_t fFlags, const char *pszTag, void **ppv) RT_NO_THROW_PROTO;
 
 /**
@@ -375,5 +375,5 @@
  *                              RTMEMALLOCEX_FLAGS_EXEC if used.
  */
-RTDECL(void) RTMemFreeEx(void *pv, size_t cb) RT_NO_THROW;
+RTDECL(void) RTMemFreeEx(void *pv, size_t cb) RT_NO_THROW_PROTO;
 
 
@@ -396,5 +396,5 @@
  * @param   pszTag  Allocation tag used for statistics and such.
  */
-RTDECL(void *)  RTMemExecAllocTag(size_t cb, const char *pszTag) RT_NO_THROW;
+RTDECL(void *)  RTMemExecAllocTag(size_t cb, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -404,5 +404,5 @@
  * @param   cb      The allocation size.
  */
-RTDECL(void)    RTMemExecFree(void *pv, size_t cb) RT_NO_THROW;
+RTDECL(void)    RTMemExecFree(void *pv, size_t cb) RT_NO_THROW_PROTO;
 
 #if defined(IN_RING0) && defined(RT_ARCH_AMD64) && defined(RT_OS_LINUX)
@@ -422,5 +422,5 @@
  * @param   cb          The size of the memory block.
  */
-RTR0DECL(int) RTR0MemExecDonate(void *pvMemory, size_t cb) RT_NO_THROW;
+RTR0DECL(int) RTR0MemExecDonate(void *pvMemory, size_t cb) RT_NO_THROW_PROTO;
 #endif /* R0+AMD64+LINUX */
 
@@ -442,5 +442,5 @@
  * @param   pszTag  Allocation tag used for statistics and such.
  */
-RTDECL(void *) RTMemPageAllocTag(size_t cb, const char *pszTag) RT_NO_THROW;
+RTDECL(void *) RTMemPageAllocTag(size_t cb, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -461,5 +461,5 @@
  * @param   pszTag  Allocation tag used for statistics and such.
  */
-RTDECL(void *) RTMemPageAllocZTag(size_t cb, const char *pszTag) RT_NO_THROW;
+RTDECL(void *) RTMemPageAllocZTag(size_t cb, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -471,5 +471,5 @@
  *                  Ignored if @a pv is NULL.
  */
-RTDECL(void) RTMemPageFree(void *pv, size_t cb) RT_NO_THROW;
+RTDECL(void) RTMemPageFree(void *pv, size_t cb) RT_NO_THROW_PROTO;
 
 /** Page level protection flags for RTMemProtect().
@@ -494,5 +494,5 @@
  * @param   fProtect    The new protection, a combination of the RTMEM_PROT_* defines.
  */
-RTDECL(int) RTMemProtect(void *pv, size_t cb, unsigned fProtect) RT_NO_THROW;
+RTDECL(int) RTMemProtect(void *pv, size_t cb, unsigned fProtect) RT_NO_THROW_PROTO;
 
 /**
@@ -504,5 +504,5 @@
  * @param   cMinPasses  The minimum number of passes to make.
  */
-RTDECL(void) RTMemWipeThoroughly(void *pv, size_t cb, size_t cMinPasses) RT_NO_THROW;
+RTDECL(void) RTMemWipeThoroughly(void *pv, size_t cb, size_t cMinPasses) RT_NO_THROW_PROTO;
 
 #ifdef IN_RING0
@@ -517,5 +517,5 @@
  *                  rounded up to PAGE_SIZE.
  */
-RTR0DECL(void *) RTMemContAlloc(PRTCCPHYS pPhys, size_t cb) RT_NO_THROW;
+RTR0DECL(void *) RTMemContAlloc(PRTCCPHYS pPhys, size_t cb) RT_NO_THROW_PROTO;
 
 /**
@@ -525,5 +525,5 @@
  * @param   cb      The cb parameter passed to RTMemContAlloc().
  */
-RTR0DECL(void) RTMemContFree(void *pv, size_t cb) RT_NO_THROW;
+RTR0DECL(void) RTMemContFree(void *pv, size_t cb) RT_NO_THROW_PROTO;
 
 /**
@@ -637,5 +637,5 @@
  * @param   pszTag  Allocation tag used for statistics and such.
  */
-RTDECL(void *)  RTMemEfTmpAlloc(size_t cb, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW;
+RTDECL(void *)  RTMemEfTmpAlloc(size_t cb, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW_PROTO;
 
 /**
@@ -647,5 +647,5 @@
  * @param   pszTag  Allocation tag used for statistics and such.
  */
-RTDECL(void *)  RTMemEfTmpAllocZ(size_t cb, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW;
+RTDECL(void *)  RTMemEfTmpAllocZ(size_t cb, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW_PROTO;
 
 /**
@@ -654,5 +654,5 @@
  * @param   pv      Pointer to memory block.
  */
-RTDECL(void)    RTMemEfTmpFree(void *pv, RT_SRC_POS_DECL) RT_NO_THROW;
+RTDECL(void)    RTMemEfTmpFree(void *pv, RT_SRC_POS_DECL) RT_NO_THROW_PROTO;
 
 /**
@@ -664,5 +664,5 @@
  * @param   pszTag  Allocation tag used for statistics and such.
  */
-RTDECL(void *)  RTMemEfAlloc(size_t cb, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW;
+RTDECL(void *)  RTMemEfAlloc(size_t cb, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW_PROTO;
 
 /**
@@ -674,5 +674,5 @@
  * @param   pszTag  Allocation tag used for statistics and such.
  */
-RTDECL(void *)  RTMemEfAllocZ(size_t cb, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW;
+RTDECL(void *)  RTMemEfAllocZ(size_t cb, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW_PROTO;
 
 /**
@@ -684,5 +684,5 @@
  * @param   pszTag  Allocation tag used for statistics and such.
  */
-RTDECL(void *)  RTMemEfAllocVar(size_t cbUnaligned, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW;
+RTDECL(void *)  RTMemEfAllocVar(size_t cbUnaligned, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW_PROTO;
 
 /**
@@ -694,5 +694,5 @@
  * @param   pszTag  Allocation tag used for statistics and such.
  */
-RTDECL(void *)  RTMemEfAllocZVar(size_t cbUnaligned, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW;
+RTDECL(void *)  RTMemEfAllocZVar(size_t cbUnaligned, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW_PROTO;
 
 /**
@@ -705,5 +705,5 @@
  * @param   pszTag  Allocation tag used for statistics and such.
  */
-RTDECL(void *)  RTMemEfRealloc(void *pvOld, size_t cbNew, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW;
+RTDECL(void *)  RTMemEfRealloc(void *pvOld, size_t cbNew, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW_PROTO;
 
 /**
@@ -712,5 +712,5 @@
  * @param   pv      Pointer to memory block.
  */
-RTDECL(void)    RTMemEfFree(void *pv, RT_SRC_POS_DECL) RT_NO_THROW;
+RTDECL(void)    RTMemEfFree(void *pv, RT_SRC_POS_DECL) RT_NO_THROW_PROTO;
 
 /**
@@ -723,5 +723,5 @@
  * @param   pszTag  Allocation tag used for statistics and such.
  */
-RTDECL(void *) RTMemEfDup(const void *pvSrc, size_t cb, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW;
+RTDECL(void *) RTMemEfDup(const void *pvSrc, size_t cb, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW_PROTO;
 
 /**
@@ -735,5 +735,5 @@
  * @param   pszTag  Allocation tag used for statistics and such.
  */
-RTDECL(void *) RTMemEfDupEx(const void *pvSrc, size_t cbSrc, size_t cbExtra, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW;
+RTDECL(void *) RTMemEfDupEx(const void *pvSrc, size_t cbSrc, size_t cbExtra, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW_PROTO;
 
 /** @def RTMEM_WRAP_SOME_NEW_AND_DELETE_TO_EF
@@ -756,5 +756,5 @@
             throw std::bad_alloc(); \
         } \
-        void *operator new(size_t cb, const std::nothrow_t &nothrow_constant) RT_NO_THROW \
+        void *operator new(size_t cb, const std::nothrow_t &nothrow_constant) RT_NO_THROW_DEF \
         { \
             NOREF(nothrow_constant); \
@@ -768,5 +768,5 @@
             throw std::bad_alloc(); \
         } \
-        void *operator new[](size_t cb, const std::nothrow_t &nothrow_constant) RT_NO_THROW \
+        void *operator new[](size_t cb, const std::nothrow_t &nothrow_constant) RT_NO_THROW_DEF \
         { \
             NOREF(nothrow_constant); \
@@ -774,18 +774,18 @@
         } \
         \
-        void operator delete(void *pv) RT_NO_THROW \
+        void operator delete(void *pv) RT_NO_THROW_DEF \
         { \
             RTMemEfFree(pv, RT_SRC_POS); \
         } \
-        void operator delete(void *pv, const std::nothrow_t &nothrow_constant) RT_NO_THROW \
+        void operator delete(void *pv, const std::nothrow_t &nothrow_constant) RT_NO_THROW_DEF \
         { \
             NOREF(nothrow_constant); \
             RTMemEfFree(pv, RT_SRC_POS); \
         } \
-        void operator delete[](void *pv) RT_NO_THROW \
+        void operator delete[](void *pv) RT_NO_THROW_DEF \
         { \
             RTMemEfFree(pv, RT_SRC_POS); \
         } \
-        void operator delete[](void *pv, const std::nothrow_t &nothrow_constant) RT_NO_THROW \
+        void operator delete[](void *pv, const std::nothrow_t &nothrow_constant) RT_NO_THROW_DEF \
         { \
             NOREF(nothrow_constant); \
@@ -868,5 +868,5 @@
  * @copydoc RTMemTmpAllocTag
  */
-RTDECL(void *)  RTMemEfTmpAllocNP(size_t cb, const char *pszTag) RT_NO_THROW;
+RTDECL(void *)  RTMemEfTmpAllocNP(size_t cb, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -874,5 +874,5 @@
  * @copydoc RTMemTmpAllocZTag
  */
-RTDECL(void *)  RTMemEfTmpAllocZNP(size_t cb, const char *pszTag) RT_NO_THROW;
+RTDECL(void *)  RTMemEfTmpAllocZNP(size_t cb, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -880,5 +880,5 @@
  * @copydoc RTMemTmpFreeTag
  */
-RTDECL(void)    RTMemEfTmpFreeNP(void *pv) RT_NO_THROW;
+RTDECL(void)    RTMemEfTmpFreeNP(void *pv) RT_NO_THROW_PROTO;
 
 /**
@@ -886,5 +886,5 @@
  * @copydoc RTMemAllocTag
  */
-RTDECL(void *)  RTMemEfAllocNP(size_t cb, const char *pszTag) RT_NO_THROW;
+RTDECL(void *)  RTMemEfAllocNP(size_t cb, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -892,5 +892,5 @@
  * @copydoc RTMemAllocZTag
  */
-RTDECL(void *)  RTMemEfAllocZNP(size_t cb, const char *pszTag) RT_NO_THROW;
+RTDECL(void *)  RTMemEfAllocZNP(size_t cb, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -898,5 +898,5 @@
  * @copydoc RTMemAllocVarTag
  */
-RTDECL(void *)  RTMemEfAllocVarNP(size_t cbUnaligned, const char *pszTag) RT_NO_THROW;
+RTDECL(void *)  RTMemEfAllocVarNP(size_t cbUnaligned, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -904,5 +904,5 @@
  * @copydoc RTMemAllocZVarTag
  */
-RTDECL(void *)  RTMemEfAllocZVarNP(size_t cbUnaligned, const char *pszTag) RT_NO_THROW;
+RTDECL(void *)  RTMemEfAllocZVarNP(size_t cbUnaligned, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -910,5 +910,5 @@
  * @copydoc RTMemReallocTag
  */
-RTDECL(void *)  RTMemEfReallocNP(void *pvOld, size_t cbNew, const char *pszTag) RT_NO_THROW;
+RTDECL(void *)  RTMemEfReallocNP(void *pvOld, size_t cbNew, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -916,5 +916,5 @@
  * @copydoc RTMemFree
  */
-RTDECL(void)    RTMemEfFreeNP(void *pv) RT_NO_THROW;
+RTDECL(void)    RTMemEfFreeNP(void *pv) RT_NO_THROW_PROTO;
 
 /**
@@ -922,5 +922,5 @@
  * @copydoc RTMemDupExTag
  */
-RTDECL(void *) RTMemEfDupNP(const void *pvSrc, size_t cb, const char *pszTag) RT_NO_THROW;
+RTDECL(void *) RTMemEfDupNP(const void *pvSrc, size_t cb, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -928,5 +928,5 @@
  * @copydoc RTMemDupExTag
  */
-RTDECL(void *) RTMemEfDupExNP(const void *pvSrc, size_t cbSrc, size_t cbExtra, const char *pszTag) RT_NO_THROW;
+RTDECL(void *) RTMemEfDupExNP(const void *pvSrc, size_t cbSrc, size_t cbExtra, const char *pszTag) RT_NO_THROW_PROTO;
 
 /** @} */
Index: trunk/include/iprt/mempool.h
===================================================================
--- trunk/include/iprt/mempool.h	(revision 57430)
+++ trunk/include/iprt/mempool.h	(revision 57432)
@@ -62,5 +62,5 @@
  * @param   cb              Size in bytes of the memory block to allocated.
  */
-RTDECL(void *) RTMemPoolAlloc(RTMEMPOOL hMemPool, size_t cb) RT_NO_THROW;
+RTDECL(void *) RTMemPoolAlloc(RTMEMPOOL hMemPool, size_t cb) RT_NO_THROW_PROTO;
 
 /**
@@ -77,5 +77,5 @@
  * @param   cb              Size in bytes of the memory block to allocated.
  */
-RTDECL(void *) RTMemPoolAllocZ(RTMEMPOOL hMemPool, size_t cb) RT_NO_THROW;
+RTDECL(void *) RTMemPoolAllocZ(RTMEMPOOL hMemPool, size_t cb) RT_NO_THROW_PROTO;
 
 /**
@@ -89,5 +89,5 @@
  * @param   cb              The amount of memory to duplicate.
  */
-RTDECL(void *) RTMemPoolDup(RTMEMPOOL hMemPool, const void *pvSrc, size_t cb) RT_NO_THROW;
+RTDECL(void *) RTMemPoolDup(RTMEMPOOL hMemPool, const void *pvSrc, size_t cb) RT_NO_THROW_PROTO;
 
 /**
@@ -103,5 +103,5 @@
  * @param   cbExtra         The amount of extra memory to allocate and zero.
  */
-RTDECL(void *) RTMemPoolDupEx(RTMEMPOOL hMemPool, const void *pvSrc, size_t cbSrc, size_t cbExtra) RT_NO_THROW;
+RTDECL(void *) RTMemPoolDupEx(RTMEMPOOL hMemPool, const void *pvSrc, size_t cbSrc, size_t cbExtra) RT_NO_THROW_PROTO;
 
 /**
@@ -115,5 +115,5 @@
  * @param   cbNew           The new block size (in bytes).
  */
-RTDECL(void *) RTMemPoolRealloc(RTMEMPOOL hMemPool, void *pvOld, size_t cbNew) RT_NO_THROW;
+RTDECL(void *) RTMemPoolRealloc(RTMEMPOOL hMemPool, void *pvOld, size_t cbNew) RT_NO_THROW_PROTO;
 
 /**
@@ -128,5 +128,5 @@
  *          function to simplify code migration.
  */
-RTDECL(void) RTMemPoolFree(RTMEMPOOL hMemPool, void *pv) RT_NO_THROW;
+RTDECL(void) RTMemPoolFree(RTMEMPOOL hMemPool, void *pv) RT_NO_THROW_PROTO;
 
 /**
@@ -137,5 +137,5 @@
  * @param   pv              Pointer to memory block.
  */
-RTDECL(uint32_t) RTMemPoolRetain(void *pv) RT_NO_THROW;
+RTDECL(uint32_t) RTMemPoolRetain(void *pv) RT_NO_THROW_PROTO;
 
 /**
@@ -149,5 +149,5 @@
  * @param   pv              Pointer to memory block.
  */
-RTDECL(uint32_t) RTMemPoolRelease(RTMEMPOOL hMemPool, void *pv) RT_NO_THROW;
+RTDECL(uint32_t) RTMemPoolRelease(RTMEMPOOL hMemPool, void *pv) RT_NO_THROW_PROTO;
 
 /**
@@ -157,5 +157,5 @@
  * @param   pv              Pointer to memory block.
  */
-RTDECL(uint32_t) RTMemPoolRefCount(void *pv) RT_NO_THROW;
+RTDECL(uint32_t) RTMemPoolRefCount(void *pv) RT_NO_THROW_PROTO;
 
 
Index: trunk/include/iprt/memsafer.h
===================================================================
--- trunk/include/iprt/memsafer.h	(revision 57430)
+++ trunk/include/iprt/memsafer.h	(revision 57432)
@@ -108,5 +108,5 @@
  * @param   pszTag      Allocation tag used for statistics and such.
  */
-RTDECL(int) RTMemSaferAllocZExTag(void **ppvNew, size_t cb, uint32_t fFlags, const char *pszTag) RT_NO_THROW;
+RTDECL(int) RTMemSaferAllocZExTag(void **ppvNew, size_t cb, uint32_t fFlags, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -134,5 +134,5 @@
  * @param   pszTag      Allocation tag used for statistics and such.
  */
-RTDECL(void *) RTMemSaferAllocZTag(size_t cb, const char *pszTag) RT_NO_THROW;
+RTDECL(void *) RTMemSaferAllocZTag(size_t cb, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -168,5 +168,5 @@
  * @param   pszTag      Allocation tag used for statistics and such.
  */
-RTDECL(int) RTMemSaferReallocZExTag(size_t cbOld, void *pvOld, size_t cbNew, void **ppvNew, uint32_t fFlags, const char *pszTag) RT_NO_THROW;
+RTDECL(int) RTMemSaferReallocZExTag(size_t cbOld, void *pvOld, size_t cbNew, void **ppvNew, uint32_t fFlags, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -207,5 +207,5 @@
  * @param   pszTag      Allocation tag used for statistics and such.
  */
-RTDECL(void *) RTMemSaferReallocZTag(size_t cbOld, void *pvOld, size_t cbNew, const char *pszTag) RT_NO_THROW;
+RTDECL(void *) RTMemSaferReallocZTag(size_t cbOld, void *pvOld, size_t cbNew, const char *pszTag) RT_NO_THROW_PROTO;
 
 /**
@@ -236,5 +236,5 @@
  * @param   cb          The allocation size.
  */
-RTDECL(void) RTMemSaferFree(void *pv, size_t cb) RT_NO_THROW;
+RTDECL(void) RTMemSaferFree(void *pv, size_t cb) RT_NO_THROW_PROTO;
 
 /** @}  */
Index: trunk/include/iprt/rand.h
===================================================================
--- trunk/include/iprt/rand.h	(revision 57430)
+++ trunk/include/iprt/rand.h	(revision 57432)
@@ -43,5 +43,5 @@
  * @param   cb  Number of bytes to generate.
  */
-RTDECL(void) RTRandBytes(void *pv, size_t cb) RT_NO_THROW;
+RTDECL(void) RTRandBytes(void *pv, size_t cb) RT_NO_THROW_PROTO;
 
 /**
@@ -52,5 +52,5 @@
  * @param   i32Last     Last number in the set.
  */
-RTDECL(int32_t) RTRandS32Ex(int32_t i32First, int32_t i32Last) RT_NO_THROW;
+RTDECL(int32_t) RTRandS32Ex(int32_t i32First, int32_t i32Last) RT_NO_THROW_PROTO;
 
 /**
@@ -59,5 +59,5 @@
  * @returns The random number.
  */
-RTDECL(int32_t) RTRandS32(void) RT_NO_THROW;
+RTDECL(int32_t) RTRandS32(void) RT_NO_THROW_PROTO;
 
 /**
@@ -68,5 +68,5 @@
  * @param   u32Last     Last number in the set.
  */
-RTDECL(uint32_t) RTRandU32Ex(uint32_t u32First, uint32_t u32Last) RT_NO_THROW;
+RTDECL(uint32_t) RTRandU32Ex(uint32_t u32First, uint32_t u32Last) RT_NO_THROW_PROTO;
 
 /**
@@ -75,5 +75,5 @@
  * @returns The random number.
  */
-RTDECL(uint32_t) RTRandU32(void) RT_NO_THROW;
+RTDECL(uint32_t) RTRandU32(void) RT_NO_THROW_PROTO;
 
 /**
@@ -84,5 +84,5 @@
  * @param   i64Last     Last number in the set.
  */
-RTDECL(int64_t) RTRandS64Ex(int64_t i64First, int64_t i64Last) RT_NO_THROW;
+RTDECL(int64_t) RTRandS64Ex(int64_t i64First, int64_t i64Last) RT_NO_THROW_PROTO;
 
 /**
@@ -91,5 +91,5 @@
  * @returns The random number.
  */
-RTDECL(int64_t) RTRandS64(void) RT_NO_THROW;
+RTDECL(int64_t) RTRandS64(void) RT_NO_THROW_PROTO;
 
 /**
@@ -100,5 +100,5 @@
  * @param   u64Last     Last number in the set.
  */
-RTDECL(uint64_t) RTRandU64Ex(uint64_t u64First, uint64_t u64Last) RT_NO_THROW;
+RTDECL(uint64_t) RTRandU64Ex(uint64_t u64First, uint64_t u64Last) RT_NO_THROW_PROTO;
 
 /**
@@ -107,5 +107,5 @@
  * @returns The random number.
  */
-RTDECL(uint64_t) RTRandU64(void) RT_NO_THROW;
+RTDECL(uint64_t) RTRandU64(void) RT_NO_THROW_PROTO;
 
 
@@ -117,5 +117,5 @@
  *                      generator.
  */
-RTDECL(int) RTRandAdvCreate(PRTRAND phRand) RT_NO_THROW;
+RTDECL(int) RTRandAdvCreate(PRTRAND phRand) RT_NO_THROW_PROTO;
 
 /**
@@ -125,5 +125,5 @@
  * @param   phRand      Where to store the handle to the generator.
  */
-RTDECL(int) RTRandAdvCreatePseudo(PRTRAND phRand) RT_NO_THROW;
+RTDECL(int) RTRandAdvCreatePseudo(PRTRAND phRand) RT_NO_THROW_PROTO;
 
 /**
@@ -133,5 +133,5 @@
  * @param   phRand      Where to store the handle to the generator.
  */
-RTDECL(int) RTRandAdvCreateParkMiller(PRTRAND phRand) RT_NO_THROW;
+RTDECL(int) RTRandAdvCreateParkMiller(PRTRAND phRand) RT_NO_THROW_PROTO;
 
 /**
@@ -148,5 +148,5 @@
  * @remarks Think /dev/urandom.
  */
-RTDECL(int) RTRandAdvCreateSystemFaster(PRTRAND phRand) RT_NO_THROW;
+RTDECL(int) RTRandAdvCreateSystemFaster(PRTRAND phRand) RT_NO_THROW_PROTO;
 
 /**
@@ -167,5 +167,5 @@
  * @remarks Think /dev/random.
  */
-RTDECL(int) RTRandAdvCreateSystemTruer(PRTRAND phRand) RT_NO_THROW;
+RTDECL(int) RTRandAdvCreateSystemTruer(PRTRAND phRand) RT_NO_THROW_PROTO;
 
 /**
@@ -175,5 +175,5 @@
  * @param   hRand       Handle to the random number generator.
  */
-RTDECL(int) RTRandAdvDestroy(RTRAND hRand) RT_NO_THROW;
+RTDECL(int) RTRandAdvDestroy(RTRAND hRand) RT_NO_THROW_PROTO;
 
 /**
@@ -190,5 +190,5 @@
  * @param   u64Seed     Seed.
  */
-RTDECL(int) RTRandAdvSeed(RTRAND hRand, uint64_t u64Seed) RT_NO_THROW;
+RTDECL(int) RTRandAdvSeed(RTRAND hRand, uint64_t u64Seed) RT_NO_THROW_PROTO;
 
 /**
@@ -212,5 +212,5 @@
  *                      terminator, thus the 'cb' instead of 'cch').
  */
-RTDECL(int) RTRandAdvSaveState(RTRAND hRand, char *pszState, size_t *pcbState) RT_NO_THROW;
+RTDECL(int) RTRandAdvSaveState(RTRAND hRand, char *pszState, size_t *pcbState) RT_NO_THROW_PROTO;
 
 /**
@@ -226,5 +226,5 @@
  * @param   pszState    The state to load.
  */
-RTDECL(int) RTRandAdvRestoreState(RTRAND hRand, char const *pszState) RT_NO_THROW;
+RTDECL(int) RTRandAdvRestoreState(RTRAND hRand, char const *pszState) RT_NO_THROW_PROTO;
 
 /**
@@ -235,5 +235,5 @@
  * @param   cb  Number of bytes to generate.
  */
-RTDECL(void) RTRandAdvBytes(RTRAND hRand, void *pv, size_t cb) RT_NO_THROW;
+RTDECL(void) RTRandAdvBytes(RTRAND hRand, void *pv, size_t cb) RT_NO_THROW_PROTO;
 
 /**
@@ -245,5 +245,5 @@
  * @param   i32Last     Last number in the set.
  */
-RTDECL(int32_t) RTRandAdvS32Ex(RTRAND hRand, int32_t i32First, int32_t i32Last) RT_NO_THROW;
+RTDECL(int32_t) RTRandAdvS32Ex(RTRAND hRand, int32_t i32First, int32_t i32Last) RT_NO_THROW_PROTO;
 
 /**
@@ -253,5 +253,5 @@
  * @param   hRand       Handle to the random number generator.
  */
-RTDECL(int32_t) RTRandAdvS32(RTRAND hRand) RT_NO_THROW;
+RTDECL(int32_t) RTRandAdvS32(RTRAND hRand) RT_NO_THROW_PROTO;
 
 /**
@@ -263,5 +263,5 @@
  * @param   u32Last     Last number in the set.
  */
-RTDECL(uint32_t) RTRandAdvU32Ex(RTRAND hRand, uint32_t u32First, uint32_t u32Last) RT_NO_THROW;
+RTDECL(uint32_t) RTRandAdvU32Ex(RTRAND hRand, uint32_t u32First, uint32_t u32Last) RT_NO_THROW_PROTO;
 
 /**
@@ -271,5 +271,5 @@
  * @param   hRand       Handle to the random number generator.
  */
-RTDECL(uint32_t) RTRandAdvU32(RTRAND hRand) RT_NO_THROW;
+RTDECL(uint32_t) RTRandAdvU32(RTRAND hRand) RT_NO_THROW_PROTO;
 
 /**
@@ -281,5 +281,5 @@
  * @param   i64Last     Last number in the set.
  */
-RTDECL(int64_t) RTRandAdvS64Ex(RTRAND hRand, int64_t i64First, int64_t i64Last) RT_NO_THROW;
+RTDECL(int64_t) RTRandAdvS64Ex(RTRAND hRand, int64_t i64First, int64_t i64Last) RT_NO_THROW_PROTO;
 
 /**
@@ -288,5 +288,5 @@
  * @returns The random number.
  */
-RTDECL(int64_t) RTRandAdvS64(RTRAND hRand) RT_NO_THROW;
+RTDECL(int64_t) RTRandAdvS64(RTRAND hRand) RT_NO_THROW_PROTO;
 
 /**
@@ -298,5 +298,5 @@
  * @param   u64Last     Last number in the set.
  */
-RTDECL(uint64_t) RTRandAdvU64Ex(RTRAND hRand, uint64_t u64First, uint64_t u64Last) RT_NO_THROW;
+RTDECL(uint64_t) RTRandAdvU64Ex(RTRAND hRand, uint64_t u64First, uint64_t u64Last) RT_NO_THROW_PROTO;
 
 /**
@@ -306,5 +306,5 @@
  * @param   hRand       Handle to the random number generator.
  */
-RTDECL(uint64_t) RTRandAdvU64(RTRAND hRand) RT_NO_THROW;
+RTDECL(uint64_t) RTRandAdvU64(RTRAND hRand) RT_NO_THROW_PROTO;
 
 
Index: trunk/include/iprt/zip.h
===================================================================
--- trunk/include/iprt/zip.h	(revision 57430)
+++ trunk/include/iprt/zip.h	(revision 57432)
@@ -196,5 +196,5 @@
 RTDECL(int)     RTZipBlockCompress(RTZIPTYPE enmType, RTZIPLEVEL enmLevel, uint32_t fFlags,
                                    void const *pvSrc, size_t cbSrc,
-                                   void *pvDst, size_t cbDst, size_t *pcbDstActual) RT_NO_THROW;
+                                   void *pvDst, size_t cbDst, size_t *pcbDstActual) RT_NO_THROW_PROTO;
 
 
@@ -215,5 +215,5 @@
 RTDECL(int)     RTZipBlockDecompress(RTZIPTYPE enmType, uint32_t fFlags,
                                      void const *pvSrc, size_t cbSrc, size_t *pcbSrcActual,
-                                     void *pvDst, size_t cbDst, size_t *pcbDstActual) RT_NO_THROW;
+                                     void *pvDst, size_t cbDst, size_t *pcbDstActual) RT_NO_THROW_PROTO;
 
 
