2008-05-15 Farid Zaripov <farid_zaripov@epam.com>
Merged from branches/4.2.x.
2008-05-15 Farid Zaripov <farid_zaripov@epam.com>
* include/rw/_mutex.h: Set size of __rw_critical_section equal to 40 on _WIN64.
2008-05-05 Martin Sebor <sebor@roguewave.com>
STDCXX-911
* include/rw/_mutex.h [6 == _RWSTD_HP_aCC_MAJOR]: Suppressed HP aCC
aCC 6 remarks: 64 bit migration: conversion from long* to "int* may
cause target of pointers to have a different size.
git-svn-id: https://svn.apache.org/repos/asf/stdcxx/trunk@656632 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/include/rw/_mutex.h b/include/rw/_mutex.h
index 2d9c096..ff2f0fd 100644
--- a/include/rw/_mutex.h
+++ b/include/rw/_mutex.h
@@ -156,7 +156,12 @@
// fake critical section type
union __rw_critical_section {
long _C_pad; // force alignment
+
+# ifndef _WIN64
char _C_buf [24 /* == sizeof (_RTL_CRITICAL_SECTION) */];
+# else // #ifdef _WIN64
+ char _C_buf [40 /* == sizeof (_RTL_CRITICAL_SECTION) */];
+# endif // _WIN64
};
# define _RWSTD_MUTEX_T _RW::__rw_critical_section
@@ -1936,6 +1941,14 @@
#if _RWSTD_LONG_SIZE == _RWSTD_INT_SIZE
+# if 6 == _RWSTD_HP_aCC_MAJOR
+ // suppress HP aCC 64 bit migration remark: conversion from
+ // "long *" to "int *" may cause target of pointers to have
+ // a different size
+# pragma diag_suppress 4230
+# endif // HP aCC 6
+
+
inline long
__rw_atomic_preincrement (long &__x, bool)
{
@@ -1981,6 +1994,11 @@
false);
}
+
+# if 6 == _RWSTD_HP_aCC_MAJOR
+# pragma diag_default 4230
+# endif // HP aCC 6
+
#endif // _RWSTD_LONG_SIZE == _RWSTD_INT_SIZE
/********************** generic long long functions *******************/