From db320e7765ac7850b51b4dd5c8ae01230e6bbdcd Mon Sep 17 00:00:00 2001 From: Dmitry Gorbachev Date: Wed, 27 May 2009 10:55:41 +0000 Subject: [PATCH] Fix warnings that are issued by new GCC versions. svn path=/trunk/; revision=41138 --- reactos/include/ddk/ntdef.h | 4 ++++ reactos/include/host/typedefs.h | 4 ++++ reactos/include/psdk/winnt.h | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/reactos/include/ddk/ntdef.h b/reactos/include/ddk/ntdef.h index 33a6500170c..747997b7b69 100644 --- a/reactos/include/ddk/ntdef.h +++ b/reactos/include/ddk/ntdef.h @@ -156,8 +156,12 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!! // Returns the byte offset of the specified structure's member // #ifndef FIELD_OFFSET +#ifndef __GNUC__ #define FIELD_OFFSET(Type, Field) \ ((LONG)(LONG_PTR) (&(((Type *) 0)->Field))) +#else +#define FIELD_OFFSET(Type, Field) __builtin_offsetof(Type, Field) +#endif #endif // diff --git a/reactos/include/host/typedefs.h b/reactos/include/host/typedefs.h index 5c7bfa4e156..193ec7a3dd6 100644 --- a/reactos/include/host/typedefs.h +++ b/reactos/include/host/typedefs.h @@ -218,7 +218,11 @@ typedef const UNICODE_STRING *PCUNICODE_STRING; #define MAKELONG(a,b) ((LONG)(((WORD)(a))|(((DWORD)((WORD)(b)))<<16))) #define NT_SUCCESS(x) ((x)>=0) +#if !defined(__GNUC__) #define FIELD_OFFSET(t,f) ((LONG_PTR)&(((t*)0)->f)) +#else +#define FIELD_OFFSET(t,f) __builtin_offsetof(t,f) +#endif #define RTL_CONSTANT_STRING(s) { sizeof(s)-sizeof((s)[0]), sizeof(s), s } #define CONTAINING_RECORD(address, type, field) ((type *)(((ULONG_PTR)address) - (ULONG_PTR)(&(((type *)0)->field)))) diff --git a/reactos/include/psdk/winnt.h b/reactos/include/psdk/winnt.h index e7f87494a19..375d488ca0c 100644 --- a/reactos/include/psdk/winnt.h +++ b/reactos/include/psdk/winnt.h @@ -1280,7 +1280,11 @@ typedef enum { #define RTL_CRITSECT_TYPE 0 #define RTL_RESOURCE_TYPE 1 /* Also in winddk.h */ +#ifndef __GNUC__ #define FIELD_OFFSET(t,f) ((LONG_PTR)&(((t*)0)->f)) +#else +#define FIELD_OFFSET(t,f) __builtin_offsetof(t,f) +#endif #ifndef CONTAINING_RECORD #define CONTAINING_RECORD(address, type, field) \ ((type *)(((ULONG_PTR)address) - (ULONG_PTR)(&(((type *)0)->field))))