diff options
author | Dimitri Papadopoulos <dimitri_at@users.sf.net> | 2006-04-19 08:40:53 +0000 |
---|---|---|
committer | Dimitri Papadopoulos <dimitri_at@users.sf.net> | 2006-04-19 08:40:53 +0000 |
commit | cb784c89505c6f45ec0a90a6d6e84ee6f4c76aaf (patch) | |
tree | 85f4f83af79a3805312ac98cc5d31da3bc94cab1 /winsup/w32api/include | |
parent | a2601182c0fe00b483ff82c0dcea7f71c41e8eac (diff) | |
download | newlib-cb784c89505c6f45ec0a90a6d6e84ee6f4c76aaf.zip newlib-cb784c89505c6f45ec0a90a6d6e84ee6f4c76aaf.tar.gz newlib-cb784c89505c6f45ec0a90a6d6e84ee6f4c76aaf.tar.bz2 |
* include/winnt.h, include/ddk/winddk.h (FIELD_OFFSET):
Compile with recent C++ compiler such as gcc 3.4.
* include/ddk/winddk.h: Ditto.
Diffstat (limited to 'winsup/w32api/include')
-rw-r--r-- | winsup/w32api/include/ddk/winddk.h | 5 | ||||
-rw-r--r-- | winsup/w32api/include/winnt.h | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/winsup/w32api/include/ddk/winddk.h b/winsup/w32api/include/ddk/winddk.h index 123a44a..c9dabbb 100644 --- a/winsup/w32api/include/ddk/winddk.h +++ b/winsup/w32api/include/ddk/winddk.h @@ -3967,9 +3967,14 @@ KefReleaseSpinLockFromDpcLevel( * IN PCHAR Field); */ #ifndef FIELD_OFFSET +#ifdef __cplusplus +#define FIELD_OFFSET(Type, Field) (reinterpret_cast<LONG> \ + (&reinterpret_cast<char&>(static_cast<Type *>(0)->Field))) +#else #define FIELD_OFFSET(Type, Field) \ ((LONG) (&(((Type *) 0)->Field))) #endif +#endif /* * PVOID diff --git a/winsup/w32api/include/winnt.h b/winsup/w32api/include/winnt.h index e6f071d..219d990 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))) |