On 1 February 2011 15:07, Andrey Hristov <p...@hristov.com> wrote:
>  Hi Richard,
> On 02/01/2011 02:35 PM, Richard Quadling wrote:
>> Hi.
>>
>> I was looking at the cause for a test failing.
>>
>> It came down to ...
>>
>> size_t n;
>>
>> if (n < 0) {
>>  // Code never reached as n is unsigned and cannot be negative.
>> }
>>
>>
>> I'm not a strong c developer, but from reading it seems that size_t is
>> always unsigned.
>>
>> Using the windows compiler (and turning on all the warnings via /Wall
>> though /W4 should be enough), this warning reports as ...
>>
>> xxx\yyy.c(nnn) : warning C4296: '>=' : expression is always false
>>
>> I then ran a full build and extracted all the C4926 warnings.
>>
>> main\network.c(1175) : warning C4296: '>=' : expression is always true
>> main\streams\filter.c(363) : warning C4296: '<' : expression is always false
>> main\streams\streams.c(921) : warning C4296: '>=' : expression is always true
>> ext\mysqlnd\mysqlnd.c(1006) : warning C4296: '>=' : expression is always true
>> ext\mysqlnd\mysqlnd.c(1031) : warning C4296: '>=' : expression is always true
>> ext\mysqlnd\mysqlnd_loaddata.c(215) : warning C4296: '<' : expression
>> is always false
>> ext\mysqlnd\mysqlnd_loaddata.c(223) : warning C4296: '<' : expression
>> is always false
>> ext\mysqlnd\mysqlnd_ps.c(1480) : warning C4296: '<' : expression is always 
>> false
>> ext\mysqlnd\mysqlnd_ps.c(1620) : warning C4296: '<' : expression is always 
>> false
>> ext\standard\ftp_fopen_wrapper.c(645) : warning C4296: '>=' :
>> expression is always true
>> ext\standard\image.c(645) : warning C4296: '<' : expression is always false
>> ext\standard\streamsfuncs.c(637) : warning C4296: '>=' : expression is
>> always true
>> ext\standard\streamsfuncs.c(677) : warning C4296: '>=' : expression is
>> always true
>> ext\standard\var.c(403) : warning C4296: '<' : expression is always false
>> ext\pdo\pdo_stmt.c(463) : warning C4296: '<' : expression is always false
>> ext\soap\php_encoding.c(2794) : warning C4296: '<' : expression is always 
>> false
>
> which mysqlnd/PHP sources did you use in your build?
>
>> In the case of the bug [1], the incorrect type comparison resulted in
>> the suppression of an error which cased the test to fail, leading me
>> here.
>>
>> I think other comparisons in the above list are also suppressing
>> errors (I think mysqlnd will fail to report a loss of connection
>> during mysqlnd_handle_local_infile() for example).
>>
>> Regards,
>>
>> Richard.
>>
>> [1] http://bugs.php.net/bug.php?id=49072
>>
>
> Best,
> Andrey
>

php-src/branches/PHP5_3/ext/mysqlnd

I've not run the code or any tests. I was just commenting on the
parallels between bug#49072 and the code that is being reported.

Richard.

-- 
Richard Quadling
Twitter : EE : Zend
@RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to