summaryrefslogtreecommitdiffstats
path: root/winsup/w32api/include/winnt.h
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/w32api/include/winnt.h')
-rw-r--r--winsup/w32api/include/winnt.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/winsup/w32api/include/winnt.h b/winsup/w32api/include/winnt.h
index e6f071d79..219d99055 100644
--- a/winsup/w32api/include/winnt.h
+++ b/winsup/w32api/include/winnt.h
@@ -845,7 +845,12 @@ typedef DWORD FLONG;
#define RTL_CRITSECT_TYPE 0
#define RTL_RESOURCE_TYPE 1
/* Also in winddk.h */
+#ifdef __cplusplus
+#define FIELD_OFFSET(t,f) (reinterpret_cast<LONG> \
+ (&reinterpret_cast<char&>(static_cast<t*>(0)->f)))
+#else
#define FIELD_OFFSET(t,f) ((LONG)&(((t*)0)->f))
+#endif
#ifndef CONTAINING_RECORD
#define CONTAINING_RECORD(address, type, field) \
((type*)((PCHAR)(address) - (PCHAR)(&((type *)0)->field)))