ID:               26769
 Updated by:       [EMAIL PROTECTED]
 Reported By:      yu at fstrf dot org
-Status:           Open
+Status:           Wont fix
 Bug Type:         Compile Warning
 Operating System: Solaris 8/sparcv9
 PHP Version:      4.3.4
 New Comment:

It's a harmless warning.

rsrc->ptr is a generic use "bucket".  Generally it's meant to hold a
pointer to some data.  In this case, pid_t is trusted to never have a
larger storage size than void* (to do so would require 16-bit pointers
and 32-bit PIDs or 32-bit pointers and 64-bit PIDs, etc...) so rather
than malloc()ing a container for child, we just drop child itself into
the pointer bucket.

Bottom line, don't worry.


Previous Comments:
------------------------------------------------------------------------

[2004-01-02 17:12:02] yu at fstrf dot org

Description:
------------
I am compiling PHP under solaris 8 /sparcv9 for 64-bit version. I get a
successful compilation except the following warnings. 

php-4.3.4/ext/standard/exec.c:588: warning: cast from pinter to integer
of different size
php-4.3.4/ext/standard/exec.c: In function `zif_proc_open':
php-4.3.4/ext/standard/exec.c:1007: warning: cast to pointer from
integer of different size

Here is the code in exec.c,
-----------------------------------------------------------
line# 586: pid_t child, wait_pid;
line# 587:
line# 588: child = (pid_t)rsrc->ptr;
.
.
.
line# 1007: ZEND_REGISTER_RESOURCE(return_value, (void*)child,
le_proc_open);
-----------------------------------------------------------

Since pid_t is defined in solaris8/sparv9 in 32 bit and pointer is 64
bit, I am worried an assignment from 64-bit pointer to a 32-bit integer
would cause segmentation fault in the runtime.

Can anybody help me on that?
Thank you,

Maggie




------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=26769&edit=1

Reply via email to