Source: php5-dev
Version: 5.5.0~beta2-1
Severity: important

In /usr/include/php5/Zend/zend_API.h:

#define ZEND_BEGIN_ARG_INFO(name, pass_rest_by_reference)       \
        ZEND_BEGIN_ARG_INFO_EX(name, pass_rest_by_reference, ZEND_RETURN_VALUE, 
-1)
                                                                                
^^

The value of -1 is actually being set on an *unsigned* type without
a cast (narrowing).  It's being asigned to zend_arg_info.class_name_len
[zend_uint == unsigned int].  This results in compiler warnings, and
if using -Werror, errors.

One possible solution would be to cast in the macro, e.g.

#define ZEND_BEGIN_ARG_INFO(name, pass_rest_by_reference)       \
        ZEND_BEGIN_ARG_INFO_EX(name, pass_rest_by_reference, ZEND_RETURN_VALUE, 
(zend_uint) -1)

Or, better, use a valid value for the type like UINT_MAX!

Just for the record, I worked around it in C++ sources by replacing
the use of ZEND_BEGIN_ARG_INFO with ZEND_BEGIN_ARG_INFO_EX, adding
ZEND_RETURN_VALUE and static_cast<zend_uint>(-1) as the additional
arguments.


Regards,
Roger

-- System Information:
Debian Release: 7.0
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)

Kernel: Linux 2.6.32.33-kvm-i386-20111128-dirty (SMP w/1 CPU core)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to