On 2013.09.02 05:52, Xiaofan Chen wrote:
> On Sat, Aug 31, 2013 at 12:21 AM, Gisle Vanem <gisle.va...@gmail.com> wrote:
>> when I'm using '-Wp64' in my CFLAGS.

This flag does not exist in VS2012.

>> "enable 64 bit porting warnings".
>> I'm on a 32-bit WIndows:
>>
>> libusb/core.c(692) : warning C4267: '=' : conversion from 'size_t' to 
>> 'ssize_t', possible loss of data
>> libusb/os/windows_usb.c(173) : warning C4267: '=' : conversion from 'size_t' 
>> to 'ssize_t', possible loss of data
>>
>> I'm not sure these matters.
>
> Did you see this with the default Visual C++2010 solution file settings
> for the 64bit build? I remember Pete's stand is to fix the warnings
> for the default settings but selective in fixing the warnings for
> non-default settings.

Unless you go pedantic, I wouldn't want compilers to warn on size_t to 
ssize_t conversions, because that's something people are going to do all 
the time, and the expectation is that developers doing such conversion 
are fully aware that they're going to lose a bit for the sign when using 
super large values.

As such, I'm not planning to take any action to silence these in the 
code, especially as we're talking about the number of discovered devices 
for the core.c one (=> someone would need more than 2 billion of those 
connected on one machine for this to become an actual issue) and 
likewise, you'll need the OS to supply us with a > 2 GB device string 
for the windows_usb.c one. Not gonna happen.

Also, as Xiaofan highlighted, and since we don't really have the scope 
to to fix warnings for every compiler, below is the list of those I 
would consider canon, or officially supported, for libusb(x)/Windows:

- Visual Studio 2012
- WDK 7600
- relatively recent version of MinGW32
- relatively recent version of MinGW-w64
- relatively recent on cygwin

If you get a warning that isn't for a real issue and that isn't going to 
appear in any of the compilers above, I will expect you to fix it in 
your solution files.

Now, of course, you will notice that we have VS2010 and VS2005 and even 
MSVC6 solution files, but we make no promise that these are up to date 
or even in working state. Of course, if you want to send a patch that we 
can apply to these solution files, we'll have no problem applying them.

>> -       priv->depth = parent_priv->depth + 1;
>> +       priv->depth = 0xff & (parent_priv->depth + 1);
>
> Hmm, I think this is not needed since depth can not be
> more than 8 as per USB standard.

Yeah. I distinctively remember looking for the maximum numbers of hubs 
that an USB device could go through, with regards to this line of code, 
and concluding that we could safely ignore the overflow. If we are going 
to change that line, it'd be to add a message that says 
"Congratulations, you ignored the USB specs and must have horrendous 
latency."

Thus, unless we get that warning in one of the canon compilers, I'm not 
planning to do anything here.


I other news, I have now pushed a fix for the VS2012/x64 conversion warning.

Regards,

/Pete


------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
_______________________________________________
libusbx-devel mailing list
libusbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusbx-devel

Reply via email to