Subject: Re: bug#720: Patch to fix CVS Emacs compilation error on Windows XP SP2.

From: Francis Litterio <[email-masked]>
Date: Thu, 14 Aug 2008 16:15:04 -0400

Eli Zaretskii wrote:

>> From: Francis Litterio
>> 
>> When building CVS Emacs on Windows XP SP2 using Visual Studio 6.0, the
>> following patch is needed to prevent the compiler from displaying an
>> error about unsigned __int64 not being convertable to double.
>
> Thank you for your report.  Can you show the error text?

Sorry for omitting that.  The error was:

	w32.c(3820) : error C2520: conversion from unsigned __int64 to double not implemented, use signed __int64

>> -    totphys = memstex.ullTotalPhys / 1024.0;
>> +    totphys = (signed __int64)memstex.ullTotalPhys / 1024.0;
>
> Does it help to use 1024.0L here instead of just 1024.0?

Nope.  Same error.

Else-thread, Stefan Monnier asked:

> Wouldn't it be better to cast to (double) ?

That doesn't help either.  Each of these variations causes the same error:

	    totphys = (double)(memstex.ullTotalPhys / 1024.0);

	    totphys = memstex.ullTotalPhys / (double)1024.0;

	    totphys = (double)memstex.ullTotalPhys / 1024.0L;

	    totphys = (double)memstex.ullTotalPhys / (double)1024.0;
--
Fran