From: Henry N. <henrynmail-mingw@ya...> - 2010-06-07 20:27:59
On 07.06.2010 16:11, Ozkan Sezer wrote:
> On 07.06.2010 10:42, Henry N. wrote:
>> On 06.06.2010 15:22, Ozkan Sezer wrote:
>>> On Sun, Jun 6, 2010 at 3:58 PM, Henry N. wrote:
>>>> I personally stick on the SVN revision 42435, I found somewhere in mingw
>>>> Use this step to load DDK headers:
>>>> cd .../sezero/W64_160271/x86_64-w64-mingw32/include
>>>> svn checkout -r 42435
>>>> svn://svn.reactos.org/reactos/trunk/reactos/include/ddk ddk
>>>> Than fix a small warning:
>>>> --- x86_64-w64-mingw32/include/ddk/ntdef.h
>>>> +++ x86_64-w64-mingw32/include/ddk/ntdef.h
>>>> @@ -14,7 +14,7 @@
>>>> -typedef unsigned long POINTER_64; // FIXME! HACK!!!
>>>> +#define POINTER_64 /* FIXME! HACK!!! */
>>> Why not just use unsigned long long? (didn't dive into the
>>> issue, just as question.)
>> With original typedef you will have this warning:
>> x86_64-w64-mingw32/include/ddk/ntdef.h:17: warning: useless type name in empty declaration
>> "POINTER_64" is later used in this way only:
>> #define NULL64 ((void * POINTER_64)0)
>> So, I would say NULL64 is simple the same as NULL. I don't know who as added the stuff of POINTER_64. Maybe it is to create a 64 bit pointer under 32 bit code? Here we are in 64 bit, so simply remove POINTER_64 from NULL64 or clear POINTER_64 out.
> I also did not take any action with the POINTER_64 problem in
> ddk/ntdef.h (reported by Henry Nestler), yet. Kai: what would be the
> best for it? An empty #define for POINTER_64??
Have a look into x86_64-w64-mingw32/include/basetsd.h line 18, there it was defined as empty:
Later exist a typedef for POINTER_64 in ntdef.h:
typedef unsigned long POINTER_64;
In case how the headers will load, gets this warning or not.
The line with "#define NULL64 ((void * POINTER_64)0)" was never used because NULL was defined before, and NULL64 is in a "#ifndef NULL". NULL64 does not exist for ddk-headers. You would get an error, if you try to use NULL64.
My conclusion: Define POINTER_64 as empty would simple fix the waning. Or remove complete the definition of POINTER_64 and remove the "POINTER_64" inside NULL64.
PS: I opened a new thread. It is more specific problem as generally headers